Button erstellen und Funktion zuweisen....
Also eine Button kann man ganz einfach nach dem Prinzip erstellen:
Delphi-Quellcode:
Aber wie weise ich dem Button eine Funktion zu?
procedure TForm1.FormCreate(Sender: TObject);
var NewButton: TButton; begin // Neuen Button auf Form 1 erzeugen: NewButton := TButton.Create(Form1); // Eigenschaften des neuen Buttons festlegen: with NewButton do begin Parent := Form1; Caption := 'Neuer Button'; Top := 10; Left := 10; Height := 30; Width := 100; end; end; |
Re: Button erstellen und Funktion zuweisen....
Delphi-Quellcode:
mybuttonOnClick muß ne procedure sein, die die gleichen pArameter hat, wie die ursprüngliche OnClick Methode des Buttons!
OnClick := mybuttonOnClick
|
Re: Button erstellen und Funktion zuweisen....
Hi,
du erstellst einfach eine Prozedur vom Typ z.B. TNotifyEvent (siehe Hilfe) und weist die zu. So zum Beispiel:
Delphi-Quellcode:
Chris
procedure TForm1.MeinEigenesOnClick(Sender: TObject);
begin ShowMessage('Dynamischer Button wurde geklickt'); end; {...} procedure TForm1.FormCreate(Sender: TObject); var NewButton: TButton; begin NewButton := TButton.Create(Form1); with NewButton do begin Parent := Form1; Caption := 'Neuer Button'; Top := 10; Left := 10; Height := 30; Width := 100; OnClick := MeinEigenesOnClick; end; end; {...} |
Re: Button erstellen und Funktion zuweisen....
Delphi-Quellcode:
TForm1 = class (TForm)
private procedure NewButttonClick(Sender : TObject); ... end; procedure TForm1.NewButttonClick(Sender : TObject); begin // Mach was end; .... NewButton.OnClick := NewButttonClick; |
Re: Button erstellen und Funktion zuweisen....
Wie kriegt man es denn hin, das man auch unterscheiden kann, welches Elemet gedrückt wurde?!
Leider kann man die OnClick Prozedur die dann kommen soll nicht noch mit mehr Attributen füttern, so das man das denn herausfindet... Die Eigenschaft Sender bringt einen auch nicht besonders weiter... Ricane |
Re: Button erstellen und Funktion zuweisen....
Was genau meinst du mit Element?
Du kannst dem Button z.B. mit tag eine eindeutige Nummer zu weisen. Oder meinst du sowas hier:
Delphi-Quellcode:
?
ShowMEssage(TButton(Sender).Name)
|
Re: Button erstellen und Funktion zuweisen....
Hi,
doch. In dem du die Eigenschaft "Name" des Buttons festlegst und dann schreibst:
Delphi-Quellcode:
Chris
procedure TfrmMain.NewButtonClick(Sender: TObject);
begin if (Sender as TButton).Text = 'NewButton' then // tu was else if (Sender as TButton).Text = 'AndererButton' then // tu was anderes end; |
Re: Button erstellen und Funktion zuweisen....
Zitat:
Folgender Fehler: [Fehler] Db_ExportMain.pas(1010): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' Hier weise ich die Prozedur zu:
Code:
Und das ist die Prozedur!
btnImportConnection.OnClick := ZweiteVerbindung;
Code:
Natürlich sind die Units gegenseitig in den USES Listen ....
Procedure ZweiteVerbindung(Sender: TObject);
Begin ShowMessage('Ich liege in einer anderen Unit!'); End; Grüsse, Ricane |
Re: Button erstellen und Funktion zuweisen....
Die Prozedur muss innerhalb desjenigen Objektes deklariert sein, in dem sich auch des Element befindet, dem du diese Prozedur als Ereignisroutine zuweisen willst.
|
Re: Button erstellen und Funktion zuweisen....
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:07 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