![]() |
Re: Buttons dynamisch erstellen
Verschibe mal "procedure Click(Sender: TObject); " in die private Deklaration.
Delphi-Quellcode:
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject); private procedure Click(Sender: TObject); //... Ein Beispiel:
Delphi-Quellcode:
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); private { Private-Deklarationen } buttons: array[0..20] of TButton; forms: array[0..20] of TForm; procedure MyBtnClick(Sender: TObject); public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var i:Integer; begin for i:=0 to 5 do begin forms[i]:=TForm.Create(self); forms[i].Visible := true; forms[i].left:= 40*i; forms[i].width:= 38; buttons[i]:=TButton.create(form1); buttons[i].Left := 20; buttons[i].top := 80; buttons[i].height := 35; buttons[i].width := 80; buttons[i].Parent := forms[i]; buttons[i].OnClick := MyBtnClick; buttons[i].Tag := i; buttons[i].Caption := 'Button ' + IntToStr(i); end; end; procedure TForm1.FormDestroy(Sender: TObject); var i : byte; begin for i:=0 to 5 do begin buttons[i].Free; forms[i].Free; end; end; procedure TForm1.MyBtnClick(Sender: TObject); begin showmessage('du hast geklicked ' + TButton(Sender).Caption); end; |
Re: Buttons dynamisch erstellen
Thx, jetzt funzt es warum auch immer, werd nen bischen rumprobieren woran es lag...
der vollständige code geht auf jedenfall.. obs nundaran lag das die Buttons und Formulare als Private deklariet wurden oder am Namen.. ist im endeffect auch egal hauptsache ich weiß wie es geht. :) Falls das hier so üblich ist beantwortete Threads zu closen kann er jetzt geclosed werden ^^ Pelzi |
Re: Buttons dynamisch erstellen
Wenn ich die Ausgangslage richtig verstanden habe, sollten viele Buttons auf ein Formular?!
Das hier
Delphi-Quellcode:
erzeugt aber m.E. viele Formulare mit je einem Button.
procedure TForm1.FormCreate(Sender: TObject);
var i:Integer; begin for i:=0 to 5 do begin forms[i]:=TForm.Create(self); forms[i].Visible := true; forms[i].left:= 40*i; forms[i].width:= 38; buttons[i]:=TButton.create(form1); buttons[i].Left := 20; buttons[i].top := 80; buttons[i].height := 35; buttons[i].width := 80; buttons[i].Parent := forms[i]; buttons[i].OnClick := MyBtnClick; buttons[i].Tag := i; buttons[i].Caption := 'Button ' + IntToStr(i); end; end; Damit
Delphi-Quellcode:
erzeuge ich 20 Buttons auf einem Formular.
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } ButtonArr : array[0..19] of TButton; public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); Var i : integer; begin for i := 0 to 19 do begin ButtonArr[i] := TButton.Create(Form1); with ButtonArr[i] do begin parent := Form1; Left := 20 + (i MOD 5)*130; Top := 20 + (i DIV 5)*80; Tag := i+1; Caption := 'Button'+IntToStr(tag); end; end; end; end. mfg gfjs |
Re: Buttons dynamisch erstellen
Zitat:
Trotzdem thx |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz