AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Ereignis OnClick nur wenn gewollt ausführen
Thema durchsuchen
Ansicht
Themen-Optionen

Ereignis OnClick nur wenn gewollt ausführen

Ein Thema von haentschman · begonnen am 4. Okt 2009 · letzter Beitrag vom 4. Okt 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.298 Beiträge
 
Delphi 12 Athens
 
#1

Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 08:46
Guten Morgen alle...

ich hatte schon lange kein Problem mehr, da dachte ich es wird mal Zeit.

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
- OnClick nil und danach wieder zuordnen ?

danke für Tipps
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 08:54
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
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.298 Beiträge
 
Delphi 12 Athens
 
#3

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 08:58
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 ?
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 09:04
Hallo

Delphi-Quellcode:
RadioButton1.OnClick := nil;
RadioButton1.Checked := true;
RadioButton1.OnClick := RadioButton1Click;
Das ist vielleicht nicht die sauberste Lösung, aber sie funktioniert.

Grüße, Matze

Edit: Ach das hast du ja bereits geschrieben, sorry.
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.298 Beiträge
 
Delphi 12 Athens
 
#5

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 09:08
Danke trotzdem...

viele Wege führen nach Rom. Welcher ist asphaltiert ?
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#6

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 09:10
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
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.298 Beiträge
 
Delphi 12 Athens
 
#7

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 09:15
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"

ist alles eine Frage der Gewohnheit.
  Mit Zitat antworten Zitat
Benutzerbild von Lannes
Lannes

Registriert seit: 30. Jan 2005
Ort: Münster
745 Beiträge
 
Delphi 3 Professional
 
#8

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 09:42
Hallo,

Zitat von haentschman:
... Checkboxen setzen löst kein OnClick aus, da muß man wirklich "klicken" ...
bist Du Dir sicher das Du da richtig liegst?

Code-Library: Wert einer Checkbox ändern, ohne OnClick Handler auszulösen
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.298 Beiträge
 
Delphi 12 Athens
 
#9

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 10:02
Fast sicher...

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
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Ereignis OnClick nur wenn gewollt ausführen

  Alt 4. Okt 2009, 10:32
eventuell kannst du über ComponentState des Formulares ermitteln ob gerade der Create prozess aktiv ist (csCreating in YourForm.ComponentState)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz