Einzelnen Beitrag anzeigen

Benutzerbild von anse
anse

Registriert seit: 30. Okt 2006
Ort: Neuenkirchen
195 Beiträge
 
Delphi 11 Alexandria
 
#1

TEdit (mit TUpDown) feuert OnChange bei erstem OnPaint

  Alt 11. Okt 2008, 16:59
Tja, der Betreff sagts eigentlich: Es geht um einen Preferences Dialog. Die Form hat ein PageControl mit 4 Tabs. Ein TEdit auf dem zweiten TTabSheet ist mit einem TUpDown assoziiert.

1. Beim Start ist das erste TTabSheet aktiv.
2. In Form.OnShow wird TUpDown.Position auf sagen wir "10" gesetzt.
3. Danach wird ein OK Button disabled
4. Beim Klick auf den zweiten Tab (auf dem das TEdit sitzt) feuert das TEdit von Geisterhand ein OnChange.

Die Implementierung sieht vor, bei OnChange aller Komponenten dieses Dialogs einen "OK" Button auf .Enabled := True zu setzen. Nun wird also beim Klick auf den zweiten Tabsheet der OK Button aktiv, obwohl der Benutzer noch gar nichts geändert hat.

Wie kanns? Ich vermute daß das TEdit erst bei Bedarf (= wenn der Tab + das TEdit sichtbar wird) gemalt wird und dabei, in Verbindung mit dem TUpDown, OnChange ausgelöst wird. Aber das scheint irgendwie unlogisch.

(Delphi 2007)
Ansgar Becker
  Mit Zitat antworten Zitat