Hallo!
Ich habe mich jetzt zu tode gesucht und auch viel gefunden, aber nirgendwo stand was, was mein Problem betrifft:
ich habe ein TEdit , das ein onClick event besitzt und zur Laufzeit erstellt wird.
in der selben Procedure wo dieses Edit erstellt wird, wird auch mit einer
lokalen variablen 'btn_weiter' ein Button erstellt.
..ich schaff es einfach nicht, dass beim Clicken auf das TEdit der Button.Enabled = false gesetzt wird...
Ich habs auf sehr viele arten probiert mit z.b.
(FindComponent('btn_weiter') as TButton).Enabled:=false; in der neuen Procedure usw..
aber nix läuft..
gibt es nicht eine möglichkeit, einfach den Button zusätzlich zum Sender mit an die Procedure zu übergeben?
z.b.
procedure TForm1.txt_change(Sender: TObject; meinButton: TButton);
und dann
OnClick:=txt_change(self,btn_weiter);
(funktioniert nicht.. hab ich schon ausprobiert...)
hier mein Ausgangscode:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38:
| procedure TForm1.txt_change(Sender: TObject); begin if Length((Sender as TEdit).Text)>0 then btn_weiter.Enabled:=true else btn_weiter.Enabled:=false end;
procedure TForm1.btn_lektion_abfragenClick(Sender: TObject); var en: TEdit; btn_weiter: TButton; begin btn_weiter := TButton.Create(Form_abfrage); with btn_weiter do begin Parent:=Form_abfrage; Caption:='weiter'; Width:=100; Height:=25; Left:=Form_abfrage.Width-btn_abfrage_beenden.Width-20; Top:=Form_abfrage.Height-btn_abfrage_beenden.Height-150; Enabled:=false; OnClick:=h end; en := TEdit.Create(Form_abfrage); with en do begin Parent:=Form_abfrage; Width:=200; MaxLength:=50; Height:=10; Left:=100; Top:=100; Font.Name:='Verdana'; setFocus; OnChange:=txt_change end end; |
...im Endeffekt soll es nur darauf hinauslaufen, dass man nur auf weiter clicken kann, wenn was in dem TEdit steht...
bin für jede Hilfe dankbar!!!
grz
saite