![]() |
RadioGroup und OnClick
hi, im OnClick-Handler frage ich den Indexwert des Eintrages ab.
Wenn ich den Eintrag anklicke wird der entsprechende Code ausgeführt, nach einem zweiten Klick aber nicht mehr. Habe ich da was vergessen ? |
Re: RadioGroup und OnClick
Hallo.
Eine TRadioGroup ist nicht dazu gedacht eine externe Aktion anzustoßen. Das Ereignis OnClick() signalisiert eine Veränderung von ItemIndex und du kannst darauf reagieren. Beim zweiten Klicken wird diese Eigenschaft nicht verändert - ergo kein Ereignis. Willst du eine Aktion auslösen, so solltest du ein Control verwenden, welches für das Auslösen von Aktionen konzipiert ist. Als Daumenregel kann gelten, dass solche Benutzerschnittstellen-Elemente eine property Action besitzen. Grüße vom marabu |
Re: RadioGroup und OnClick
hi, greift die Daumenregel auch bei RadioButtons ? Trotz Action-Eigenschaft reagiert der Button nicht nach einem zweiten Klick. Was mache ich falsch ?
|
Re: RadioGroup und OnClick
Zitat:
|
Re: RadioGroup und OnClick
Zitat:
Man (wie ich) murxt in Delphi gerne unelegant herum :-) |
Re: RadioGroup und OnClick
@ Delphien
Guten Morgen. Ich hatte gerade ein ähnliches Problem: Mit 4 RadioButtons kann der Anwender auswählen, ob eine Aufgabe jede Woche, 14-tätig, alle 3 oder 4 Wochen ausgeführt werden soll. Je nach Auswahl erscheinen dann weitere RadioButtons zur näheren Bestimmung (z.B. erste Auswahl 14-tägig, zweite Auswahl gerade oder ungerade Kalenderwoche). Ich habe die RBs nicht in einer RadioGroup sondern in einer GroupBox platziert. Die Steuerung der weiteren Auswahlmöglichkeiten erfolgt über die onClick-Ereignisse der RBs - das klappt tadellos. Wenn die Auswahl in der ersten GroupBox geändert wird, ändert sich aus die Auswahl in der zweiten GroupBox entsprechend. Der einzige (kleine) Nachteil ist, dass die Auswahl nicht direkt aus einem Index (wie bei der RadioBox) ausgelesen werden kann, sondern die RBs über eine Schleife abgefragt werden müssen. Vielleicht ist diese Lösung für Dich ja auch praktikabel. mfg gfjs |
Re: RadioGroup und OnClick
Guten Morgen, gfjs.
Es geht ohne eine Schleife, wenn du den RadioButtons im tag property einen eindeutigen Wert zuweist. Diesen kannst du dann im gemeinsamen OnClick() event handler zur Steuerung deiner Aktionen verwenden:
Delphi-Quellcode:
Freundliche Grüße vom marabu
procedure TDemoForm.RadioButtonClick(Sender: TObject);
begin with Sender as TRadioButton do case Tag of 1: ShowMessage('have'); 2: ShowMessage('a'); 3: ShowMessage('nice'); 4: ShowMessage('day'); end; end; |
Re: RadioGroup und OnClick
Guten Morgen, marabu.
Vielen Dank für den Hinweis. Ich bin noch Anfänger und habe diese Möglichkeit auch schon ein paarmal verwendet. In meinem speziellen Fall, kann ich darauf aber nicht zurückgreifen, da ich das Tag für einen anderen Zweck verwende und nicht immer eindeutige Werte drin stehen. mfg gfjs |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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