Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TButton zur laufzeit erzeugen Probleme mit Onclick (https://www.delphipraxis.net/10892-tbutton-zur-laufzeit-erzeugen-probleme-mit-onclick.html)

ottokar24 27. Okt 2003 15:33


TButton zur laufzeit erzeugen Probleme mit Onclick
 
Hallo,
ich will einige Tbutton zur laufzeit in der Schleife erzeugen.
Wass ich auch soweit hinbekommen habe bis auf die zuweisung von Onclick.
Bei OnClick mache ich immer einen Fehler und er sagt der Daten tup ist nicht
ok.
Wenn jemand mir eine Antwor schick kann Danke.
Delphi-Quellcode:
var
B_Click : String;

for i:=1 to 10 do begin
(Erzeugen des Button mit Create Selve)
....
OnClick := B_Click + IntToStr(i);
..
..
[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]

Christian Seehase 27. Okt 2003 16:02

Re: TButton zur laufzeit erzeugen Probleme mit Onclick
 
Moin Ottokar,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

OnClick wird die Adresse einer Prozedur übergeben.

Schau Dir dazu mal diesen Thread an
prozedur aufruf und sender
da hatten wir das Thema gerade ausführlich besprochen.

Gollum 27. Okt 2003 16:05

Re: TButton zur laufzeit erzeugen Probleme mit Onclick
 
Hallo,

das OnClick-Ereignis erwartet eine Methode und keinen String!!!

Deklariere eine Methode vom Typ TNotifyEvent und weise die dann dem OnClick-Ereignis zu.

Delphi-Quellcode:
type
  TMyForm=class(TForm1)
    ...
    ...
  private
    procedure MyButtonClick(Sender:TObject);
    ...
  end; // TMyForm


...
...


procedure TMyForm.MyButtonClick(Sender:TObject);
begin
  case TControl(Sender).Tag of
    1:;
    2:;
  end; // case
  // tu hier irgendetwas
 
end; // TMyForm.MyButtonClick

...
for i:=1 to 10 do begin
(Erzeugen des Button mit Create Selve)
  ...
  OnClick:=MyButtonClick;
  Tag:=i;
  ...
...
Um herauszufinden welcher Button gedrückt wurde, kannst Du wie im obigen Beispiel das Tag-Property benutzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:15 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