Einzelnen Beitrag anzeigen

Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Mit Message bestimmte Aktionen bei Komponenten ausführen

  Alt 22. Aug 2008, 23:08
Hallo zusammen,

ich würde gerne über Messages dementsprechend bei Buttons reagieren. Ich habe schon ein paar Beiträge zu Messages gelesen und schonmal soweit dieses Beispiel erstellt.
Delphi-Quellcode:
type
  TForm3 = class(TForm)
    Memo1: TMemo;
    SpeedButton1: TSpeedButton;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    procedure MyMessages(var Msg: TMsg; var Handled: Boolean);
  end;

var
  Form3: TForm3;

implementation

{$R *.dfm}

procedure TForm3.FormCreate(Sender: TObject);
begin
  Application.OnMessage := MyMessages;
end;

procedure TForm3.MyMessages(var Msg: tagMSG; var Handled: Boolean);
var
  I: Integer;
begin
  case Msg.message of
    WM_LBUTTONDOWN:
      begin
        Memo1.Lines.Add('TestButton');
      end;
  end;
end;
Funktioniert auch alles soweit. Jetzt möchte ich aber zum Beispiel bei bestimmten Buttons das gleiche ausführen. Dazu ändere ich die Procedure MyMessages so ab :
Delphi-Quellcode:
procedure TForm3.MyMessages(var Msg: tagMSG; var Handled: Boolean);
var
  I: Integer;
begin
  case Msg.message of
    WM_LBUTTONDOWN:
      begin
        if TSpeedButton(Sender).Name = 'SpeedButton1then
          Memo1.Lines.Add('TestButton');
      end;
  end;
end;
Dann kommt immer undefinierter Bezeichner 'Sender'. Hier stellt sich mir die Frage wieso ?

Für eine Erklärung, einen Hinweis oder Links zu passenden Tutorials wäre ich dankbar.

Edit: Titel geändert
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat