Hi
Also, wenn du weißt, welche Ereignisse dubrauchst, kannst du folgendermaßen vorgehen.
Erzeuge eine Form nach meinem 1. Vorschlag.Dann setzt du ein Button temporär hinein und erzeugst z. B. die ereignisroutinen , die du brauchst, hier z. B. onClick.
Nun schreibst du dir eine Procedure zur Erzeugung eines Buttons zur Laufzeit. Du weißt schon,
Delphi-Quelltext
1:
| MyButton:=TButton.Create(Self); |
darunter nun die ganzen Eigenschaften und ! die Zuweisung der OnClick-Methode des temporären Buttons.
Nun nimmst du die Möglichkeiten der verschiedenen Buttons und vezweigst in der Ereignisprocedure auf entsprechende Proceduren für die unterschiedlichen Aktionen der Buttons.
Also
MyButton.Name:='EinButton_'+IntToStr(Index); // Namen mit Index vergeben
MyButton.OnClick:=TempButtonClick; // Ereignisprocedure zuweisen
MyButton.Parent:=MyForm; // Parent nicht vergessen, kann auch Panel sein
In der Ereignisprocedur
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16:
| Procedure MyForm.TempButtonClick(Sender:TObject); Var ProcNr : Integer; xPos : Integer; TempStr : String; Begin If Sender is TButton then Begin TempStr :=(Sender As TButton).Name; xPos:=Pos('_',TempStr); ProcNr:=StrToInt(Copy(TempStr,xpos+1,Length(TempStr)-xPos)); Case ProcNr of 1 : Mach_dies; 2 : Mach_das; ...... xx: oder_nix; end; End; |
Das sollte mal für den Anfang reichen. Jetzt kannst du das temporäre Button auch löschen.
genauso gehst du mit den Ereignisroutinen der anderen Elemente vor. Es geht zwar auch ohne die temporären Objekte und auch noch viel komplizierter und umfangreicher, aber ich denke, dieser Weg ist nachvollziehbar und dann kannst du immer noch eigene Wege gehen
Gruß oldmax
Zier dich nich so, ich krieg dich schon....