Steuerung Radiobutton

Für Dinge zum Forum, Kritik, Verbesserungsvorschläge, Umfragen und ähnliches.
Antworten
wernkrau38
Beiträge: 28
Registriert: Di 8. Mär 2016, 11:46
OS, Lazarus, FPC: Windows10
CPU-Target: Win64

Steuerung Radiobutton

Beitrag von wernkrau38 »

Hallo,
Ich will wenn ein Radiobutton umgeschaltet wird, eine Aktion auslösen.
Das funktioniert mit OnChange für jeden Button.
Ich will das aber mit RadioGroup1SelectionChanged tun; also mit 1 Procedur für die ganze Gruppe statt mit je 1er für jeden Button.
Geht das damit?
Wernkrau38
Dateianhänge
project1.zip
(3.09 KiB) 144-mal heruntergeladen

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Steuerung Radiobutton

Beitrag von wp_xyz »

Du hast in jede RadioButtonGroup mehrere einzelne Radiobuttons gesetzt. Das funktioniert zwar, ist aber so nicht gedacht. Stattdessen gehst du zur Eigenschaft Items und trägst die Beschriftung der einzelnen RadioButtons ein. Die Buttons werden dann automatisch erzeugt und platziert, wobei du die Platzierung mit den Eigenschaften AutoFill, Columns, Columnlayout beeinflussen kannst. Auf den markierten Radiobutton kannst du mit ItemIndex zugreifen (wie bei einer Listbox). Ein OnChange-Ereignis gibt es hier nicht, dafür macht das OnClick alles.

wernkrau38
Beiträge: 28
Registriert: Di 8. Mär 2016, 11:46
OS, Lazarus, FPC: Windows10
CPU-Target: Win64

Re: Steuerung Radiobutton

Beitrag von wernkrau38 »

Danke, das funktioniert!
Aber: wofür ist das event OnSelectionChanged aus der Radiogroup zu gebrauchen?

mfg, Wernkrau38

wp_xyz
Beiträge: 4869
Registriert: Fr 8. Apr 2011, 09:01

Re: Steuerung Radiobutton

Beitrag von wp_xyz »

Das kannst du auch nehmen, beide verhalten sich identisch. OnClick ist Delphi-kompatibel, hat aber die unerwartete Eigenschaft, dass es auch gefeuert wird, wenn man einen anderen Button per Code einstellt (z.B. RadioGroup.ItemIndex := 2), also wenn gar nicht geklickt wurde. Um das klarer zu bezeichnen, wurde OnSelectionChanged eingeführt, man musste aber das Delphi-kompatible OnClick beibehalten.

Antworten