Delphi: RadioButton.Checked oder CheckBox.Checked ändern ohne OnClick-Event auszulosen
Tipp von Delphianer | 21.03.2013 um 19:46
Ändert man per Programmcode den Status eines RadioButtons oder einer CheckBox - zum Beispiel wenn man Checked auf True oder False setzt - wird auch automatisch das OnClick-Event des Options-Schalters ausgelöst. Heute möchte ich euch zeigen, wie ihr es verhindern könnt, dass das OnClick Event ausgeführt wird.
OnClick-Event wird ausgeführt
RadioButton1.Checked := True; // oder CheckBox1.Checked := True;
OnClick-Event wird verhindert
procedure ChangeState(NewState: boolean); var OldEvent: TNotifyEvent; begin // Altes Event merken OldEvent := RadioButton1.OnClick; RadioButton1.OnClick := nil; // Änderungen durchführen, zum Beispiel: RadioButton1.Checked := NewState; // Event zurücksetzen RadioButton1.OnClick := OldEvent; end;
Der Trick dabei: Wir merken uns die für das OnClick zugewiesene Prozedur in der Variable OldEvent. Danach setzen wir das OnClick auf nil. Dadurch ist keine Prozedur mehr zugewiesen, die ausgeführt werden könnte und wir können problemlos Änderungen am Status durchführen. Da alles natürlich hinterher genauso funktionieren soll, wie vorher, dürfen wir nicht vergessen, zuletzt die Prozedur wieder zurückzusetzen. Im Beispiel haben wir einen RadioButton benutzt, dasselbe funktioniert natürlich auch für die CheckBox in gleicher Weise.
Über den Autor
Der Autor hat keine Kurzbeschreibung seines Profils angegeben.
Profil anzeigen
Ähnliche Themen
HTML-Formular mit Daten vorbelegen
Tutorial | 0 Kommentare
PHP: Strings mit Ctype-Funktionen auf Zeichenklassen überprüfen
Artikel | 0 Kommentare
HTML Formular: Weiterleitung abhängig von Radiobutton oder Checkbox
Tutorial | 0 Kommentare
jQuery: DIV-Container abhängig von Checkbox anzeigen oder ausblenden
Tutorial | 2 Kommentare
Delphi: Event Reihenfolge einer Form - Von OnCreate bis OnDestroy
Info | 1 Kommentar
jQuery: Unterschied zwischen "return false" und "event.preventDefault()"
Info | 0 Kommentare
jQuery: Alle Checkboxen markieren (Select/Unselect All)
Tipp | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.