AGB  ·  Datenschutz  ·  Impressum  







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

RadioGroup und OnClick

Ein Thema von delphien · begonnen am 14. Jan 2006 · letzter Beitrag vom 18. Jan 2006
Antwort Antwort
delphien

Registriert seit: 25. Nov 2005
27 Beiträge
 
#1

RadioGroup und OnClick

  Alt 14. Jan 2006, 16:36
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 ?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: RadioGroup und OnClick

  Alt 14. Jan 2006, 17:02
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
  Mit Zitat antworten Zitat
delphien

Registriert seit: 25. Nov 2005
27 Beiträge
 
#3

Re: RadioGroup und OnClick

  Alt 14. Jan 2006, 20:46
hi, greift die Daumenregel auch bei RadioButtons ? Trotz Action-Eigenschaft reagiert der Button nicht nach einem zweiten Klick. Was mache ich falsch ?
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#4

Re: RadioGroup und OnClick

  Alt 14. Jan 2006, 20:54
Zitat von delphien:
hi, greift die Daumenregel auch bei RadioButtons ? Trotz Action-Eigenschaft reagiert der Button nicht nach einem zweiten Klick. Was mache ich falsch ?
Wenn es keine Ausnahmen geben würde, wärs ja keine Daumenregel ^^ Zur Not nimm doch MouseDown oder MouseUp.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
rory
(Gast)

n/a Beiträge
 
#5

Re: RadioGroup und OnClick

  Alt 14. Jan 2006, 23:14
Zitat von marabu:
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
Marabu hat völlig Recht. Allerdings kannst Du beim nächsten Anzeigen der RG den Index auf -1 setzen, wodurch Du wieder auf einen RB klicken kannst (auch denselben wie vorher). Ist nicht weiter kompliziert, benötigt aber ein globales Word für die Zwischenspeicherung des GB.Index, welches das alte mit dem neuen Item vergleichen kann.

Man (wie ich) murxt in Delphi gerne unelegant herum
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#6

Re: RadioGroup und OnClick

  Alt 17. Jan 2006, 06:33
@ 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
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: RadioGroup und OnClick

  Alt 17. Jan 2006, 10:16
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:
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;
Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
gfjs

Registriert seit: 8. Dez 2005
Ort: Hohenkammer
298 Beiträge
 
Delphi 2006 Professional
 
#8

Re: RadioGroup und OnClick

  Alt 18. Jan 2006, 05:25
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
Mein neues Motto (von "Unbekannt"):
Gewinnen: Wenn Du kannst - Verlieren: Wenn Du musst - Aufgeben: NIE!
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:09 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