Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   FreePascal Button dynamisch erstellen / On... Events WIE ? (https://www.delphipraxis.net/162254-button-dynamisch-erstellen-events-wie.html)

thomasschaf 14. Aug 2011 19:10

Delphi-Version: 5

Button dynamisch erstellen / On... Events WIE ?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich möchte einem Button, den ich dynamisch erstellt habe, ein On... (z.B. OnClick) - Ereignis zuweisen.

Ich beginne so:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var
  a: TButton;
begin
  a     := TButton.Create(self);
  a.Parent := Form1;
  a.Visible := True;
  a.Top := 0;
  a.Left := 0;
  a.Width := 22;
  a.Height := 44;
  a.Caption := 'lala';

end;
Das klappt auch ganz toll!

Aber wie kann ich jetzt OnClick-zuweisen ?

Irgendwas mit "a.OnClick:=" aber ich habe keine Ahnung was ich da reinschreiben soll.
Der Typ ist TNOTIFYEVENT ?

Vielen Danke

wicht 14. Aug 2011 19:16

AW: Button dynamisch erstellen / On... Events WIE ?
 
Delphi-Quellcode:
TNotifyEvent = procedure(Sender: TObject) of object;

Das heißt, du machst dir im Form eine Prozedur wie zum Beispiel

Delphi-Quellcode:
type
  MeinForm = class(TForm)
  private
    procedure ButtonClick(Sender: TObject);

{...}

procedure MeinForm.ButtonClick(Sender: TObject);
begin
  // Es wurde geklickt!
end;
Die Zuweisung des OnClick zur Methode wäre dann

Delphi-Quellcode:
a.OnClick := ButtonClick;


HTH

thomasschaf 14. Aug 2011 19:17

AW: Button dynamisch erstellen / On... Events WIE ?
 
Mist, hatte das "@" vergessen!

grus

thomasschaf 14. Aug 2011 19:20

AW: Button dynamisch erstellen / On... Events WIE ?
 
Ah, danke!

Hatte es auch grad noch probiert und festgestellt, dass man ein @ braucht.

Danke, THomas!

wicht 14. Aug 2011 19:25

AW: Button dynamisch erstellen / On... Events WIE ?
 
Achja, FreePascal ist da etwas strikter.. Delphi hat mir den schluffigen Programmierstil beigebracht, ich gehöre (leider) zu der Fraktion, die das @ weglässt :-D

Schön wenn jetzt alles funktioniert.

DeddyH 14. Aug 2011 19:25

AW: Button dynamisch erstellen / On... Events WIE ?
 
Das @ brauchst Du nur, wenn Du nicht auf den Delphi-Kompatibilitätsmodus umstellst. Wie das allerdings genau ging, weiß ich leider nicht aus dem Kopf, da wird IIRC eine Compiler-Direktrive gesetzt ({$MODE Delphi} oder so ähnlich).


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:58 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz