![]() |
Ereignis OnClick nur wenn gewollt ausführen
Guten Morgen alle... :hi:
ich hatte schon lange kein Problem mehr, da dachte ich es wird mal Zeit. :zwinker: Eine prinzipielle Frage wie löst man so etwas "sauber". Gegebenheiten: - RadioGroup - im OnCreate des Formulars RadioButton1.Checked:= True (Initialisierung auf Startwert) - im OnClick des Radiobuttons diverse Anweisungen --> Ereignis OnClick wird auch bei der Initialisierung im OnCreate ausgeführt (ist ja korrekt) mein Problem: - die Ausführung der Anweisungen im OnClick unterbinden für den Aufruf aus OnCreate Wie würdet ihr das elegant lösen ? - Startvariable mitschleifen ? - läßt sich unterscheiden, ob der Aufruf aus OnCreate kommt :gruebel: - OnClick nil und danach wieder zuordnen ? danke für Tipps :hi: |
Re: Ereignis OnClick nur wenn gewollt ausführen
Hi!
Steht schon zur Compilezeit fest, dass RadioButton1 gecheckt werden soll? Habe grad kein Delphi hier, aber kannst du es in dem Fall nicht im OI einstellen sodass es im OnCreate nicht mehr stehen muss? Grüße, Frederic |
Re: Ereignis OnClick nur wenn gewollt ausführen
Danke für die schnelle Reaktion. 8)
im Prinzip ja. Ich setze mir die Starteinstellungen gern im OnCreate damit ich bei Änderungen nicht in der IDE suchen muß. edit: - habs grad probiert. wenn es in der IDE gesetzt wird wird kein OnClick ausgelöst. wäre das die eleganteste Lösung ? |
Re: Ereignis OnClick nur wenn gewollt ausführen
Hallo
Delphi-Quellcode:
Das ist vielleicht nicht die sauberste Lösung, aber sie funktioniert. ;)
RadioButton1.OnClick := nil;
RadioButton1.Checked := true; RadioButton1.OnClick := RadioButton1Click; Grüße, Matze Edit: Ach das hast du ja bereits geschrieben, sorry. :wall: |
Re: Ereignis OnClick nur wenn gewollt ausführen
Danke trotzdem... :zwinker:
viele Wege führen nach Rom. Welcher ist asphaltiert ? :zwinker: |
Re: Ereignis OnClick nur wenn gewollt ausführen
Hi!
Also ich würde die OI-Lösung einfacher und für mich auch übersichtlicher - allerdings muss ich dazu sagen, dass ich Startwerte auch immer im OI stehen habe und nie im FormCreate (wenn sie denn schon zur Compile-Zeit bekannt sind). Es wäre die Frage, ob es nicht auch laufzeittechnisch was ausmacht, wenn dann diese 3 Anweisungen ausgeführt werden - da habe ich aber ehrlich keine Ahnung - war nur so ne Idee. Grüße, Frederic |
Re: Ereignis OnClick nur wenn gewollt ausführen
Hallo Frederic,
ich tendiere langsam auch dazu, die Startwerte in den OI zu übernehmen. Erstaunlicherweise tritt das nur mit Radiobuttons auf. Checkboxen setzen löst kein OnClick aus, da muß man wirklich "klicken" :wink: ist alles eine Frage der Gewohnheit. :zwinker: |
Re: Ereignis OnClick nur wenn gewollt ausführen
Hallo,
Zitat:
Code-Library: ![]() |
Re: Ereignis OnClick nur wenn gewollt ausführen
Fast sicher... :wink:
das OnClick wird nur ausgeführt, wenn sich der Wert ändert. Wenn die Checkbox False ist und auf False gesetzt wird passiert gar nix. Das hat mich ein wenig in die Irre geführt. Fazit: Du hast Recht :hi: |
Re: Ereignis OnClick nur wenn gewollt ausführen
eventuell kannst du über ComponentState des Formulares ermitteln ob gerade der Create prozess aktiv ist (csCreating in YourForm.ComponentState)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:29 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