Sign in Join
Wiki copytemporary

TRadioButton/fr: what changed

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

OldNewLine
11Un **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]].
22
33Pour 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.\
44Il 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.
55
66Partout 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.
77
88# Un simple exemple
99
1010- Créez une nouvelle application et placez trois RadioButtons sur la fiche.
1111- Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en *rbRed*, *rbGreen* et *rbBlue*.
1212- De la même façon, vous pouvez changer les intitulés des RadioButtons en *Red*, *Green* et *Blue*.
1313- Ajoutez à votre fiche, un bouton et changez son intitulé en *Draw new* et son nom en *btnPaint*.
1414- 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.
1515- Ajoutez le code suivant :
1616
1717``` pascal
1818procedure TForm1.btnPaintClick(Sender: TObject);
1919begin
2020 if rbRed.Checked then Color:=clRed;
2121 if rbGreen.Checked then Color:=clLime;
2222 if rbBlue.Checked then Color:=clBlue;
2323end;
2424```
2525
2626- Ouvrez votre application, elle devrait ressembler à quelque chose comme cela :
2727
2828![](/wiki-images/9/92/RadioButtonExample1.png) -\> ![](/wiki-images/1/12/RadioButtonExample2.png)
2929
3030# Usage d'un événement
3131
3232A 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.\
3333Vous 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 :
3434
3535- Créez une nouvelle application et placez trois RadioButtons sur la fiche.
3636- Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en *rbRed*, *rbGreen* et *rbBlue*.
3737- De la même façon, vous pouvez changer les intitulés des RadioButtons en *Red*, *Green* et*Blue*.
3838- 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.
3939- Faites changer la couleur de la fiche par le gestionnaire d'événement *OnChange* selon le RadioButton sélectionné :
4040
4141``` pascal
4242procedure TForm1.rbRedChange(Sender: TObject);
4343begin
4444 Self.Color:=clRed; //with "Self", you select the object in which the method exists (method: rbRedChange / object: Form1)
4545end;
4646
4747procedure TForm1.rbGreenChange(Sender: TObject);
4848begin
4949 Form1.Color:=clLime; //You can directly select the object ''Form1'', but poor,
5050 //because then no other object of class 'TForm1' can be created
5151end;
5252
5353procedure TForm1.rbBlueChange(Sender: TObject);
5454begin
5555 Color:=clBlue; //or you leave out "Self" and the compiler will automatically detect its own object
5656end;
5757```
5858
5959- Ouvrez votre application, elle devrait ressembler à ceci :
6060
6161![](/wiki-images/b/bd/RadioButtonExample3.png) -\> ![](/wiki-images/7/7c/RadioButtonExample4.png)
6262
6363# Groupement
6464
6565Si 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.\
6666Si 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.).\
6767L'exemple suivant montre comment vous pouvez regrouper les RadioButtons : Vous pouvez modifier l'exemple Un simple exemple ou créer une nouvelle application :
6868
6969- En premier, vous placez un [[TGroupBox/fr|TGroupBox]] de la palette de composants Standard sur votre fiche.
7070- Vous changez son nom en *gbColor* et son intitulé en *Color*.
7171- Maintenant, vous sous-classez cette GroupBox les RadioButtons *rbRed*, *rbGreen* et *rblue* :
7272 - Dans le projet modifié, vous pouvez séquentiellement daéplacer les RadioButtons **dans l'inspecteur d'objet** en glissant et déposant vers *gbColor*.
7373 - 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*.
7474- Maintenant placez un second GroupBox sur votre fiche nommée *gbBrightness* avec l'intitulé *Brightness*.
7575- Ajoutez aussi dans ce GroupBox trois RadioButtons et donnez-leur les noms *rbBrightDark*, *rbBrightMedDark* et *rbBrightBright* et les intitulés *Dark*, *MediumDark* et *Bright*.
7676- Si vous avez créé une nouvelle application, vous devez ajouter un bouton avec le nom *btnPaint* et l'intitulé *Draw new* à la fiche.
7777- Dans le gestionnaire d'événement *OnClick* de *btnPaint*, modifiez le code en :
7878
7979``` pascal
8080procedure TForm1.btnPaintClick(Sender: TObject);
8181begin
8282 if rbRed.Checked then Color:=Brightness or clRed;
8383 if rbGreen.Checked then Color:=Brightness or clLime;
8484 if rbBlue.Checked then Color:=Brightness or clBlue;
8585end;
8686```
8787
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 :
88+- Maintenant créez la fonction Brightness, dans la section *private* de TForm1, écrivez **`function Brightness: TColor;`** et pressez sur les touches `Ctrl` + `Shift` + `c` (complétion de code). Le corps de la fonction est créé. Entrez le code suivant :
8989
9090``` pascal
9191function TForm1.Brightness: TColor;
9292begin
9393 Result:=0;
9494 if rbBrightMedDark.Checked then Result:=$888888;
9595 if rbBrightBright.Checked then Result:=$DDDDDD;
9696end;
9797```
9898
9999- D&marrez votre application, vous pouvez utilisez les boutons radio groupés séparément, cela doit donc ressembler à :
100100
101101![](/wiki-images/b/bf/RadioButtonExample5.png) -\> ![](/wiki-images/8/87/RadioButtonExample6.png)
102102
103103# Voir aussi
104104
105105- [[doc:lcl/stdctrls/tradiobutton.html|Doc. TRadioButton]]
106106- [[TRadioGroup/fr|TRadioGroup]] - Usage de RadioGroups\
107107- [[TToggleBox/fr|TToggleBox]] - Usage de Toggleboxes\
108108- [[TCheckBox/fr|TCheckBox]] - Usage de CheckBoxes\
109109
110110---
111111*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