AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

RadioButton und OnClick

Ein Thema von Blutiger Anfänger · begonnen am 22. Mai 2005 · letzter Beitrag vom 23. Mai 2005
 
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.123 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: RadioButton und OnClick

  Alt 23. Mai 2005, 20:31
Moin OPA,

erst einmal muss ich einen Irrtum meinerseits aufklären:
Bei einem RadioButton wird nur dann das OnClick bei Zuweisung an die Eigenschaft Checked ausgelöst, wenn der Wert auf True gesetzt wird, und der Wert gleich false war.

Vergleichbar ist dies auch beim Anklicken.
Ist der Button markiert, so wird kein OnClick ausgelöst, demzufolge hat ein Doppelclick auch kein doppeltes Ausführen der Ereignisroutine zur Folge.

Es genügt also einfach das Starten des Programmes per ShellExecute dort einzutragen, ggf. noch das Zurücksetzen der Eigenschaft Checked.
Die Zuweisungen an Enabled, und die Verzögerung sind überflüssig.

Zu Marabus Anmerkung bezüglich der Verwendung von RadioButtons als Button hätte ich auch noch etwas (nicht böse gemeint):
Interface Hall of Shame

Es spricht natürlich prinzipiell nichts dagegen bei der Gestaltung der Bedienung kreativ zu sein, solange dies eine Verbesserung bedeutet. Bei der Verwendung von RadioButton als Button halte ich dies allerdings für fraglich, da sie sich hier völlig anders verhalten, erwartet.

Wie wäre es denn mit SpeedButton?
Initial werden AllowUp auf true und Down auf false gesetzt.
Im OnClick werden nun
Delphi-Quellcode:
  SpeedButton1.OnClick := nil;
  SpeedButton1.AllowAllUp := false;
gesetzt.
Dies hat zur Folge, dass der Button gedrückt erscheint, und kein Klick mehr Wirkung hat.
Um dieses zu lösen nimmst Du einen weiteren, "normalen", Button als Reset-Button.

Delphi-Quellcode:
  SpeedButton1.AllowAllUp := true;
  SpeedButton1.Down := false;
  SpeedButton1.OnClick := SpeedButton1Click;
Hiermit wird der Button wieder gelöst, und das Anklicken mit Funktion belegt.
Damit sich die Button nicht gegenseitig auslösen muss bei jeden ein anderer GroupIndex > 0 angegeben werden.

Vorteil: Jeder sieht sofort, was er angeklickt hat, und kann gezielt die erneute Nutzung aktivieren (Reset-Button, ggf. einer für alle SpeedButton).
Das ist jetzt auch nicht ideal, aber, IMHO, irgendwie gewohnter, als ein RadioButton.

Eigentlich sollten Button genügen, denn i.d.R. weiss der geübte Windows-Anwender, dass ein Doppelclick auf einen Button diesen auch zweimal aktiviert.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
 


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 06:51 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