Obtenir le texte d'un StatusBar

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, commctrl;

type
TForm1 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

function GetStatusText(wndWindow : THandle;
StatusBarClassName : string;
PanelIndex : Byte) : string;
var
WndStatusBar : THandle;
StatusBarText : array[0..$FFF] of Char;
begin
Result := '';
WndStatusBar := FindWindowEx(wndWindow, 0, PChar(StatusBarClassName), nil);
if WndStatusBar <> 0 then
begin
if PanelIndex = 0 then
SendMessage(WndStatusBar, WM_GETTEXT, $FFF, Longint(@StatusBarText))
else
SendMessage(WndStatusBar, SB_GETTEXT, PanelIndex , Longint(@StatusBarText));
Result := StrPas(StatusBarText);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
// Read statustext from Internet Explorer
Label1.Caption := GetStatusText(FindWindow('IEFrame',nil),'msctls_statusbar32',0);
// Also works with a TStatusBar
Label2.Caption := GetStatusText(Form1.Handle,'TStatusBar',0);
end;
end.
Ajouter un commentaire
Pseudo
Adresse email
Site internet (optionnel)
Votre commentaire
Fiche de l'article
Mise a jour08/08/2002
VisualisationVu 893 fois
PublicInternaute zz
CategorieDelphi - Trucs et astuces - Systeme
Auteur de l'article
SwissDelphiCenter SwissDelphiCenter
connecté le 02/11/2011
329 articles dans la section
Contacter l'auteur