Qui bouton radio est sélectionné dans un TRadioGroup?
Comme vous pouvez le voir dans ma question d'histoire, je suis l'élaboration d'un eBook manager, qui sera open-source et je les publierai dans les 10 jours, mais j'ai un TRadioGroup
, comme vous pouvez le voir:
TRadioGroup Utilisé Sur Mon Formulaire http://img85.imageshack.us/img85/1830/radiogroup.png
Et je veux stocker des choses dans une variable(qui doit être un Integer
) qui sera "lié" avec ce TRadioGroup
.
J'ai besoin de faire un if
fonction comme ceci:
Légende De La TRadioButton -> Nombre qui devra être stockée dans la variable
Ajustement 2xWidth - par Défaut -> 0
Ajustement 2xHeight -> 1
Adapter à la Largeur -> 2
Ajustement de la Hauteur -> 3
Mais j'ai juste utilisé un TRadioGroup
et un TRadioButton
une fois, différente de celle de C# que j'ai utilisé plus de 20 fois. Alors je veux savoir ce que je dois mettre sur la fonction si, parce que ce qu'il va faire je sais déjà comment faire:
var
num: Integer;
begin
if(TRadioButton1 checked?)
begin
num := 0;
end;
end.
Ce que j'ai besoin de mettre entre parenthèses de la if
fonction?
PS: je vais mettre des crédits sur le programme pour les personnes qui m'ont aidé dans ce projet un peu.
- À partir de votre question que l'histoire, je pensais que vous étiez la rédaction d'un front-end pour GCC. Pourquoi un e-book, gestionnaire de besoin d'invoquer un compilateur C?
- C'est une nouvelle fonctionnalité de mon eBook manager.
Vous devez vous connecter pour publier un commentaire.
Un TRadioButton a la propriété Checked. Mais Un TRadioGroup a la ItemIndex propriété.
Les éléments dans un TRadioGroup sont stockées à l'aide d'un TStrings. De sorte que vous pouvez associer un objet à chaque option et vous pouvez convertir un entier en TObject être stockées.
Exemple:
De lire le paramètre actuel:
Ou pour obtenir de l'associé entier:
Dans votre cas, les valeurs vont de 0 à 3 de sorte que vous pouvez utiliser le ItemIndex.
Comme une note, si ce n'est pas une fonction. Une fonction est un morceau de code qui renvoie une valeur basée sur les paramètres d'entrée. Si est une déclaration, qui est une commande qui peut être exécuté. Si l'instruction est spécial parce qu'il vous permet d'exécuter une autre instruction basée sur la condition if.
Integer
, qui sera uniquement tenu d'un certain nombre, qui sera l'un des seul qui est sélectionné?Juste un petit CONSEIL: Réglage
.ItemIndex
n'envoie pas le focus du clavier de la radio point, je sais comment résoudre le problème, la lecture à l'avance.Au lieu de sélectionner par le code de la Radio dans un groupe de boutons par la mise en
.ItemIndex
il est beaucoup mieux de le faire par l'envoi d'accent à la radio de l'élément; juste pour être très clair: je veux dire l'envoi se concentrer seulement à la radio, et non l'ensemble du groupe de boutons radio.Au lieu de:
radiogroup.itemindex:=TheIndex;
Le faire comme ceci:
TRadioButton(radiogroup.Controls[TheIndex]).SetFocus;
Il va faire de la radio point à être sélectionné et envoyer le focus clavier à, de sorte qu'il affiche le rectangle en pointillés arroud-il, comme si l'utilisateur avait cliqué sur celui-ci.
Note1: afin De le voir en action utiliser le clavier touches de curseur et de comparer behavor de tout simplement la mise en
.ItemIndex
et l'envoi de l'accent à la radio de l'élément.Note2: Si vous utilisez
TRadioButton(radiogroup.Controls[TheIndex]).SetFocus;
il n'est pas inutile de définir.ItemIndex
à tous, il sera également fait.Espère que ça aide quelqu'un ayant le même problème que moi, quand le besoin de la définir par code, par exemple pour éviter une circulaire du clavier behavor, par exemple pour la fabrication de rester sur la dernière radio de l'élément lors de la dernière radio de l'élément sélectionné et le clavier curseur de droite est enfoncée, même pour la première.