Sign in Join
Wiki copytemporary

TRadioButton/fr: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: TRadioButton/fr

OldNewLine
1+Un **TRadioButton** ![](/wiki-images/7/7a/Tradiobutton.png) est un composant qui affiche un bouton de sélection qui fonctionne avec d'autres RadioButtons d'une manière mutuellement exclusive - Si un button est sélectionné, aucun des autres dans le groupe ne peut être sélectionné. Le composant TRadioButton se trouve dans l'[[Standard tab/fr|onglet Standard]] de la [[Component Palette/fr|palette de composants]].
2+
3+Pour utiliser un RadioButton sur une [[TForm/fr|fiche]], vous pouvez simplement le sélectionner sur la palette de composants *Standard* et le placer, avec un clic sur la fiche.\
4+Il ne sert à rien en général de poser un seul RadioButton, car les RadioButtons sont prévus pour choisir entre plusieurs alternatives. Ainsi, vous pouvez utiliser aussi un [[TRadioGroup/fr|TRadioGroup]] à la place de RadioButtons individuels.
5+
6+Partout dans votre code source, vous pouvez obtenir l'état des RadioButtons, actif ou inactif, en interrogeant **`Status := <RadioButton>.Checked;`**. Vous pouvez utiliser *Checked* comme un [[Boolean/fr|booléen]] normal. Ainsi, l'affectation **`<RadioButton>.Checked := True;`** est possible.
7+
8+# Un simple exemple
9+
10+- Créez une nouvelle application et placez trois RadioButtons sur la fiche.
11+- Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en *rbRed*, *rbGreen* et *rbBlue*.
12+- De la même façon, vous pouvez changer les intitulés des RadioButtons en *Red*, *Green* et *Blue*.
13+- Ajoutez à votre fiche, un bouton et changez son intitulé en *Draw new* et son nom en *btnPaint*.
14+- Créez le gestionnaire d'événement *OnClick* pour le bouton, en utilisant l'onglet Evénements de l'inspecteur d'objet, sélectionnez l'événement OnClick et cliquez sur le bouton \[...\] ou double-cliquez le bouton sur la fiche.
15+- Ajoutez le code suivant :
16+
17+``` pascal
18+procedure TForm1.btnPaintClick(Sender: TObject);
19+begin
20+ if rbRed.Checked then Color:=clRed;
21+ if rbGreen.Checked then Color:=clLime;
22+ if rbBlue.Checked then Color:=clBlue;
23+end;
24+```
25+
26+- Ouvrez votre application, elle devrait ressembler à quelque chose comme cela :
27+
28+![](/wiki-images/9/92/RadioButtonExample1.png) -\> ![](/wiki-images/1/12/RadioButtonExample2.png)
29+
30+# Usage d'un événement
31+
32+A la différence avec l'exemple précédent, nous ne repeignons pas la fiche en cliquant sur le bouton mais en cliquant sur les RadioButtons eux-mêmes.\
33+Vous pouvez modifier l'exemple précédent, en supprimant le bouton et son gestionnaire d'événement *OnClick* dans le code source, vous pouvez créer un nouvel exemple mais aussi simple :
34+
35+- Créez une nouvelle application et placez trois RadioButtons sur la fiche.
36+- Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en *rbRed*, *rbGreen* et *rbBlue*.
37+- De la même façon, vous pouvez changer les intitulés des RadioButtons en *Red*, *Green* et*Blue*.
38+- Maintenant vous pouvez créer les gestionnaires d'événement pour les RadioButtons. Pour chacun d'eux, vous pouvez utiliser l'onglet événements de l'inspecteur d'objet, sélectionner l'événement *OnChange* et cliquez sur le bouton \[...\], vous pouvez aussi double-cliquer dessus.
39+- Faites changer la couleur de la fiche par le gestionnaire d'événement *OnChange* selon le RadioButton sélectionné :
40+
41+``` pascal
42+procedure TForm1.rbRedChange(Sender: TObject);
43+begin
44+ Self.Color:=clRed; //with "Self", you select the object in which the method exists (method: rbRedChange / object: Form1)
45+end;
46+
47+procedure TForm1.rbGreenChange(Sender: TObject);
48+begin
49+ Form1.Color:=clLime; //You can directly select the object ''Form1'', but poor,
50+ //because then no other object of class 'TForm1' can be created
51+end;
52+
53+procedure TForm1.rbBlueChange(Sender: TObject);
54+begin
55+ Color:=clBlue; //or you leave out "Self" and the compiler will automatically detect its own object
56+end;
57+```
58+
59+- Ouvrez votre application, elle devrait ressembler à ceci :
60+
61+![](/wiki-images/b/bd/RadioButtonExample3.png) -\> ![](/wiki-images/7/7c/RadioButtonExample4.png)
62+
63+# Groupement
64+
65+Si vous ajoutez un RadioButton sur votre fiche, celle-ci est le [[Parent/fr|parent]] (le contrôle qui inclut votre RadioButton). A chaque fois que vous sélectionnez un RadioButon (par clic ou par code), l'autre RadioButton de même parent précédemment sélectionné voit sa propriété *Checked* changée en False.\
66+Si vous voulez utiliser différents RadioButtons conçus pour des choix différents et indépendants, vous devez regrouper les RadioButtons dans un même conteneur (celui qui a le rôle de parent). Vous pouvez utiliser un composant [[TRadioGroup/fr|TRadioGroup]] ou grouper vos RadioButtons sur un contrôle (p.ex. [[TPanel/fr|TPanel]], [[TGroupBox/fr|TGroupBox]], [[TNotebook/fr|TNotebook]], [[TPageControl/fr|TPageControl]] etc.).\
67+L'exemple suivant montre comment vous pouvez regrouper les RadioButtons : Vous pouvez modifier l'exemple Un simple exemple ou créer une nouvelle application :
68+
69+- En premier, vous placez un [[TGroupBox/fr|TGroupBox]] de la palette de composants Standard sur votre fiche.
70+- Vous changez son nom en *gbColor* et son intitulé en *Color*.
71+- Maintenant, vous sous-classez cette GroupBox les RadioButtons *rbRed*, *rbGreen* et *rblue* :
72+ - Dans le projet modifié, vous pouvez séquentiellement daéplacer les RadioButtons **dans l'inspecteur d'objet** en glissant et déposant vers *gbColor*.
73+ - Dans le nouveau projet, vous pouvez insérer les trois RadioButtons l'un après l'autre en cliquant pour insérer dans le GroupBox, puis changer les noms en *rbRed*, *rbGreen* et *rbBlue* et les intitulés en *Red*, *Green* et *Blue*.
74+- Maintenant placez un second GroupBox sur votre fiche nommée *gbBrightness* avec l'intitulé *Brightness*.
75+- Ajoutez aussi dans ce GroupBox trois RadioButtons et donnez-leur les noms *rbBrightDark*, *rbBrightMedDark* et *rbBrightBright* et les intitulés *Dark*, *MediumDark* et *Bright*.
76+- Si vous avez créé une nouvelle application, vous devez ajouter un bouton avec le nom *btnPaint* et l'intitulé *Draw new* à la fiche.
77+- Dans le gestionnaire d'événement *OnClick* de *btnPaint*, modifiez le code en :
78+
79+``` pascal
80+procedure TForm1.btnPaintClick(Sender: TObject);
81+begin
82+ if rbRed.Checked then Color:=Brightness or clRed;
83+ if rbGreen.Checked then Color:=Brightness or clLime;
84+ if rbBlue.Checked then Color:=Brightness or clBlue;
85+end;
86+```
87+
88+- Maintenant créez la fonction Brightness, dans la section *private* de TForm1, écrivez **`function Brightness: TColor;`** et pressez sur les touches <span class="kbd">Ctrl</span> + <span class="kbd">Shift</span> + <span class="kbd">c</span> (complétion de code). Le corps de la fonction est créé. Entrez le code suivant :
89+
90+``` pascal
91+function TForm1.Brightness: TColor;
92+begin
93+ Result:=0;
94+ if rbBrightMedDark.Checked then Result:=$888888;
95+ if rbBrightBright.Checked then Result:=$DDDDDD;
96+end;
97+```
98+
99+- D&marrez votre application, vous pouvez utilisez les boutons radio groupés séparément, cela doit donc ressembler à :
100+
101+![](/wiki-images/b/bf/RadioButtonExample5.png) -\> ![](/wiki-images/8/87/RadioButtonExample6.png)
102+
103+# Voir aussi
104+
105+- [[doc:lcl/stdctrls/tradiobutton.html|Doc. TRadioButton]]
106+- [[TRadioGroup/fr|TRadioGroup]] - Usage de RadioGroups\
107+- [[TToggleBox/fr|TToggleBox]] - Usage de Toggleboxes\
108+- [[TCheckBox/fr|TCheckBox]] - Usage de CheckBoxes\
109+
110+---
111+*From the Free Pascal wiki, page "TRadioButton/fr", as it stood on 2020-03-01 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history