Entwickler-Ecke
Grafische Benutzeroberflächen (VCL & FireMonkey) - onclick unterdrücken
lkz633 - Mo 16.12.02 00:22
Titel: onclick unterdrücken
Hallo,
I aendere in meinem Programm den Status einer Checkbox, dadurch wird automatisch das Ereigniss onclick aufgerufen. Wie kann ich dies elegant vermeiden ?
Es geht natürlich mit einer zusaetlichen globalen Variablen, doch dies gefaellt mir nicht. Gibt es einen anderen Weg ?
Danke für Hilfe
MFG lkz633
Alibi - Mo 16.12.02 01:40
Wieso willst du das verhindern? Mir fällt jetzt echt kein Grund dafür ein...
Tino - Mo 16.12.02 10:32
Hatte dieses "Problem" auch schon mal gehabt. Hab mir immer damit geholfen vor dem setzen der Checked Eigenschaft das OnClick-Event auf NIL zu setzen und anschließend wieder auf die Methode.
Verstehe das eigentlich auch nicht warum ein OnCLICK-Event dadurch ausgelöst wird. Besser wäre ein OnChange oder so. Na ja...
Gruß
TINO
Anonymous - Mo 16.12.02 10:53
Man sollte sich in diesem Fall merken welches Ereignis es vor dem Zuweisen von Nil war. Ich mache es meistens so:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| procedure TForm1.Edit1Change(Sender: TObject); var Change: TNotifyEvent; begin Change := Edit1.OnChange; Edit1.OnChange := nil;
...
Edit1.OnChange := Change; end; |
Tino - Mo 16.12.02 10:56
Stimmt. So mache ich es auch! :wink:
lkz633 - Mo 16.12.02 11:17
Hallo,
herzlichen Dank für die schnelle Antwort, genau sowas hab ich gesucht. Hab noch ein mini-Problem. Ich hab jetzt folgenden code:
Quelltext
1: 2: 3: 4: 5: 6: 7:
| var change: TNotifyEvent; begin change:= checkboxclick; checkboxclick()= nil; ........ checkboxclick():= change; |
checkboxclick ist eine eigene function, da die checkboxen dynamisch erzeugt werden.
Quelltext
1:
| procedure Tfmain.checkboxclick(sender: tobject); |
Was muss ich denn jetzt im obigen code in die Klammern schreiben, bekomms nicht hin
Dank und Gruss
lkz633
foxy - Mo 16.12.02 11:28
denke mal die werte die du an die andere Unit weiter geben willst??? :P
lkz633 - Mo 16.12.02 11:43
Hi,
Ich will aber ja gerade keine Werte übergeben
Gruss lkz633
Tino - Mo 16.12.02 12:28
lkz633 hat folgendes geschrieben: |
Ich hab jetzt folgenden code:
Quelltext 1: 2: 3: 4: 5: 6: 7:
| var change: TNotifyEvent; begin change:= checkboxclick; checkboxclick()= nil; ........ checkboxclick():= change; | |
Schau Dir noch mal genau den Sourcecode von Popov an. :wink:
Gruß
TINO
lkz633 - Mo 16.12.02 12:56
Hi,
hatte das Problem das ich nicht wusste, wie ich da dranjomme, da ich die Komp. dynamisch erzeuge. Findcomponent war des Rätsels Lösung
Danke für die Hilfe
lkz633
Anonymous - Mo 16.12.02 13:43
Das Ganze machst du ohne Klammern.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!