Welcher radio button ausgewählt ist, in einer TRadioGroup?
Wie Sie sehen können, in meiner Frage, die Geschichte, entwickle ich ein eBook-manager, das wird open-source und ich lasse es etwa 10 Tage, aber ich habe eine TRadioGroup
, wie Sie sehen können:
TRadioGroup für Mein Formular http://img85.imageshack.us/img85/1830/radiogroup.png
Und ich wollen speichern jährigen in eine variable(muss ein Integer
), "verbunden" mit diesem TRadioGroup
.
Ich muss if
Funktion wie diese:
Beschriftung Der TRadioButton -> Zahl, müssen in der Variablen gespeichert werden
Fit 2xWidth - Standard -> 0
Fit 2xHeight -> 1
Passen Breite -> 2
"Höhe anpassen" - > 3
Aber ich habe gerade verwendet eine TRadioGroup
und ein TRadioButton
eine Zeit, anders als in C#, die ich verwendet habe mehr als 20 mal. Dann möchte ich wissen, was ich brauche, um auf die wenn-Funktion, denn was es wird weiß ich bereits, wie zu tun:
var
num: Integer;
begin
if(TRadioButton1 checked?)
begin
num := 0;
end;
end.
Was ich in den Klammern der if
Funktion?
PS: ich werde die credits auf dem Programm für die Menschen, die mir geholfen haben in diesem kleinen Projekt.
Es ist ein neues feature von meinem eBook-manager.
InformationsquelleAutor Nathan Campos | 2009-12-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ein TRadioButton hat die Checked-Eigenschaft. Aber Eine TRadioGroup hat die ItemIndex-Eigenschaft.
Elemente in einer TRadioGroup gespeichert sind, mit einem TStrings. So ordnen Sie ein Objekt, um jede option, und Sie können eine Umwandlung von integer in TObject gespeichert werden.
Beispiel:
Lesen die aktuelle Einstellung:
Zu erhalten oder die zugehörige integer:
In deinem Fall die Werte 0 bis 3, so können Sie den ItemIndex.
Als Hinweis, wenn nicht eine Funktion. Eine Funktion ist ein Stück code, die einen Wert zurückgibt, basierend auf den Eingabeparametern. If ist eine Anweisung ist ein Befehl, der ausgeführt werden kann. Die if-Anweisung ist besonders, denn es ermöglicht Ihnen die Ausführung einer anderen Aussage, basierend auf der if-Bedingung.
Integer
, das wird nur statt einer Zahl, wird der einzige, der ausgewählt ist?Wenn Fensterbreite ausgewählt ist, ItemIndex = 2, wenn Fix 2xWidth ausgewählt ist ItemIndex = 0 etc..
InformationsquelleAutor Toon Krijthe
Nur ein kleiner TIPP: Einstellung
.ItemIndex
sendet keine Tastatur-Fokus auf das radio-Element, ich weiß wie man es beheben, Lesen Sie hier weiter.Statt der Auswahl von code, die ein Radio in einer RadioGroup durch Einstellung
.ItemIndex
es ist viel besser zu tun, indem es den Fokus auf das radio-Element; nur ganz klar sein: ich meine das senden konzentrieren sich nur auf die radio-Element, nicht das ganze radio-Gruppe.Statt:
radiogroup.itemindex:=TheIndex;
Tun Sie es wie diese:
TRadioButton(radiogroup.Controls[TheIndex]).SetFocus;
Es ist das radio-Element ausgewählt werden, und senden Sie den Tastatur-Fokus auf das, so zeigt Sie das gepunktete Rechteck arroud es, gerade als hätte der Benutzer darauf geklickt.
Anmerkung 1: Zu sehen, Sie in Aktion verwenden Sie die Tastatur cursor-Tasten und vergleichen behavor nur Einstellung
.ItemIndex
und senden den Fokus auf radio-Element.Note2: Wenn Sie
TRadioButton(radiogroup.Controls[TheIndex]).SetFocus;
dann gibt es keine keine Notwendigkeit, um.ItemIndex
an alle, es wird auch getan werden.Hoffe, das hilft jemandem mit dem gleichen problem wie ich, wenn Sie brauchen, um es durch code, zum Beispiel zu vermeiden, kreisförmige Tastatur behavor, zum Beispiel für die Herstellung es zu bleiben auf dem letzten radio-Element, wenn die Letzte radio-Element ausgewählt und Tastatur-Pfeil nach rechts gedrückt wird, die gleiche für ersten.
Dieses raffinierte bisschen Logik gelöst eine verrückte problem hatten wir mit einem Formular stecken in einer Schleife basierend auf das OnClick-Ereignis. Danke!
InformationsquelleAutor z666zz666z