TEdit (mit TUpDown) feuert OnChange bei erstem OnPaint
11. Okt 2008, 17: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
|