![]() |
Button erst klickbar wenn Editfelder ausgefüllt
Hi,
ich habe in meinem Programm eine Dialogbox mit mehreren LabelEdits und einem OK-Button. In 2 LabelEdits soll mindestens 1 Buchstabe eingetragen werden und in ein weiteres eine (genau) 4-stellige Zahl, bis OKButton.Enabled auf TRUE gesetzt wird und somit anklickbar ist. Wie realisiere ich das? Ich habe mit den OnChange und OnKeyPress-Ereignissen des ersten LabelEdits testweise erst mal folgendes versucht:
Delphi-Quellcode:
,
if length(text) >= 1 then OKBtn.Enabled:=TRUE else OKBtn.Enabled:=FALSE;
aber anscheinend werden die Ereignisse nicht ausgelöst wenn die Backspace-Taste gedrückt wird - ich kann also zunächst einen Buchstaben ins LabelEdit eintragen und anschließend wieder löschen, ohne dass der OK-Button wieder ausgegraut wird, was aber nicht sein sollte. |
AW: Button erst klickbar wenn Editfelder ausgefüllt
Delphi-Quellcode:
Es gibt auch das Event OnChange, welches wohl das passende für dich sein dürfte.
procedure TForm1.LabeledEdit1Change(Sender: TObject);
begin btnOk.Enabled := (TLabeledEdit(Sender).Text <> ''); end; |
AW: Button erst klickbar wenn Editfelder ausgefüllt
Zitat:
|
AW: Button erst klickbar wenn Editfelder ausgefüllt
Oha, habe das OnChange komplett übersehen, sorry -- Asche auf mein Haupt :oops:
Bei mir klappt mein Code im OnChange-Ereignis jedenfalls. Btw. Hast du den Code im OnChange UND im KeyPress-Ereignis? |
AW: Button erst klickbar wenn Editfelder ausgefüllt
nein nur jeweils in einem... deiner klappt, ja, aber ich wüsste gerne wo in meiner zeile der logische fehler ist :)
|
AW: Button erst klickbar wenn Editfelder ausgefüllt
Was ist denn denn text? Zeit mal die ganze Methode her.
|
AW: Button erst klickbar wenn Editfelder ausgefüllt
naja text ist einfach der Parameter des LabelEdits, das was man dort einträgt
Habe auch
Delphi-Quellcode:
(also
self.text
Delphi-Quellcode:
) versucht, hat nichts geändert
LabelEdit1.text
|
AW: Button erst klickbar wenn Editfelder ausgefüllt
Zeig mal bitte die komplette Methode her!
|
AW: Button erst klickbar wenn Editfelder ausgefüllt
Also folgendes funktioniert definitiv, der OnChange wird ausgelöst und der jeweilige Text des Edits in ein Label geschrieben.
Delphi-Quellcode:
procedure TForm1.LabeledEdit1Event(Sender: TObject);
begin label1.Caption := TLabeledEdit(Sender).Text+'|'; end; |
AW: Button erst klickbar wenn Editfelder ausgefüllt
Habe gerade nachgeschaut, und was war genau das was ich dachte... Es liegt an dem Aufruf von Text. TForm hat auch die Eigenschaft Text und genau auf diese greifst du zu. Du greifst nicht auf die LabeledEdit1.Text-Eigenschaft zu.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:54 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