Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Problem mit Radiogroup: Erkennen welcher Button gedrückt ist


Theo51 - Mi 05.03.14 21:37
Titel: Problem mit Radiogroup: Erkennen welcher Button gedrückt ist
Hallo,

ganz kurz und dringend:

Ich habe ein Quiz erstellt, in welchem man durch Buttons in einer Radiogroup die richtige Lösung auswählt.

Wie kann ich nun überprüfen ob die richtige Antwort ausgewählt wurde? Das muss doch eigentlich total einfach sein oder?

Bitte helft mir. vielen Dank


Delete - Mi 05.03.14 22:18

Property ItemIndex


gerd8888 - Mi 05.03.14 22:28


Delphi-Quelltext
1:
if sender = button1 then ....                    


Delete - Mi 05.03.14 22:33

Mit Verlaub, aber das ist Quatsch! Es geht hier doch nicht um TButton, sondern um die Knöpfe in einer TRadioGroup. Wenn du im OI diverse Items festgelegt hast und danach dem ItemIndex z.B. 0 zuweist, ist der erste "Button" gedrückt. Umgekehrt läßt sich mit der Abfrage von ItemIndex auslesen, welcher "Button" gedrückt ist. Bekanntlich kann in einer TRadioGroup immer nur ein "Button" gedrückt sein; davon ist der Typ RadioGroup auch abgeleitet: Wie bei einem Radio kannst du immer nur einen einzigen aller empfangbaren Sender einstellen.


gerd8888 - Mi 05.03.14 22:52


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure TForm1.RadioGroup1click(); // oder TForm1.Button1click() ?
begin
  case radiogroup1.itemindex of
  0begin end;
  1begin end;
  end;
end;


wahrscheinlich ist das so besser.


WasWeißDennIch - Do 06.03.14 10:12

Kleine Anmerkung: das Auswerten des ItemIndex einer RadioGroup funktioniert nur dann, wenn man die RadioButtons auch über die Items-Eigenschaft der RadioGroup definiert. Geht man her und zieht sie händisch aus der Komponentenpalette auf die RadioGroup, klappt das nicht.


baumina - Do 06.03.14 10:27

user profile iconWasWeißDennIch hat folgendes geschrieben Zum zitierten Posting springen:
Kleine Anmerkung: das Auswerten des ItemIndex einer RadioGroup funktioniert nur dann, wenn man die RadioButtons auch über die Items-Eigenschaft der RadioGroup definiert. Geht man her und zieht sie händisch aus der Komponentenpalette auf die RadioGroup, klappt das nicht.


Eine TRadioGroup ist kein Container wie z.B. TGroupBox oder TPanel, kann also niemals Parent einer Komponente werden. Händisch da was draufziehen schafft man nicht. Der RadioButton würde immer nur auf dem selben Parent wie die RadioGroup landen.


WasWeißDennIch - Do 06.03.14 10:40

Und das kannst Du optisch unterscheiden? Übrigens ist die RadioGroup von TCustomGroupBox abgeleitet, könnte theoretisch also sehr wohl der Parent werden, nur muss man das per Code machen, innerhalb der IDE gibt es Mechanismen, die das verhindern (namentlich: Ändern des ControlStyle im Konstruktor und Entfernen des Styles csAcceptsControls).