TRadioButton/fr: what changed
Revision 1 to 2. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | 1 | Un **TRadioButton**  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 | 2 | ||
| 3 | 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 | 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 | 5 | ||
| 6 | 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 | 7 | ||
| 8 | 8 | # Un simple exemple | |
| 9 | 9 | ||
| 10 | 10 | - Créez une nouvelle application et placez trois RadioButtons sur la fiche. | |
| 11 | 11 | - Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en *rbRed*, *rbGreen* et *rbBlue*. | |
| 12 | 12 | - De la même façon, vous pouvez changer les intitulés des RadioButtons en *Red*, *Green* et *Blue*. | |
| 13 | 13 | - Ajoutez à votre fiche, un bouton et changez son intitulé en *Draw new* et son nom en *btnPaint*. | |
| 14 | 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 | 15 | - Ajoutez le code suivant : | |
| 16 | 16 | ||
| 17 | 17 | ``` pascal | |
| 18 | 18 | procedure TForm1.btnPaintClick(Sender: TObject); | |
| 19 | 19 | begin | |
| 20 | 20 | if rbRed.Checked then Color:=clRed; | |
| 21 | 21 | if rbGreen.Checked then Color:=clLime; | |
| 22 | 22 | if rbBlue.Checked then Color:=clBlue; | |
| 23 | 23 | end; | |
| 24 | 24 | ``` | |
| 25 | 25 | ||
| 26 | 26 | - Ouvrez votre application, elle devrait ressembler à quelque chose comme cela : | |
| 27 | 27 | ||
| 28 | 28 |  -\>  | |
| 29 | 29 | ||
| 30 | 30 | # Usage d'un événement | |
| 31 | 31 | ||
| 32 | 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 | 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 | 34 | ||
| 35 | 35 | - Créez une nouvelle application et placez trois RadioButtons sur la fiche. | |
| 36 | 36 | - Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en *rbRed*, *rbGreen* et *rbBlue*. | |
| 37 | 37 | - De la même façon, vous pouvez changer les intitulés des RadioButtons en *Red*, *Green* et*Blue*. | |
| 38 | 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 | 39 | - Faites changer la couleur de la fiche par le gestionnaire d'événement *OnChange* selon le RadioButton sélectionné : | |
| 40 | 40 | ||
| 41 | 41 | ``` pascal | |
| 42 | 42 | procedure TForm1.rbRedChange(Sender: TObject); | |
| 43 | 43 | begin | |
| 44 | 44 | Self.Color:=clRed; //with "Self", you select the object in which the method exists (method: rbRedChange / object: Form1) | |
| 45 | 45 | end; | |
| 46 | 46 | ||
| 47 | 47 | procedure TForm1.rbGreenChange(Sender: TObject); | |
| 48 | 48 | begin | |
| 49 | 49 | Form1.Color:=clLime; //You can directly select the object ''Form1'', but poor, | |
| 50 | 50 | //because then no other object of class 'TForm1' can be created | |
| 51 | 51 | end; | |
| 52 | 52 | ||
| 53 | 53 | procedure TForm1.rbBlueChange(Sender: TObject); | |
| 54 | 54 | begin | |
| 55 | 55 | Color:=clBlue; //or you leave out "Self" and the compiler will automatically detect its own object | |
| 56 | 56 | end; | |
| 57 | 57 | ``` | |
| 58 | 58 | ||
| 59 | 59 | - Ouvrez votre application, elle devrait ressembler à ceci : | |
| 60 | 60 | ||
| 61 | 61 |  -\>  | |
| 62 | 62 | ||
| 63 | 63 | # Groupement | |
| 64 | 64 | ||
| 65 | 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 | 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 | 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 | 68 | ||
| 69 | 69 | - En premier, vous placez un [[TGroupBox/fr|TGroupBox]] de la palette de composants Standard sur votre fiche. | |
| 70 | 70 | - Vous changez son nom en *gbColor* et son intitulé en *Color*. | |
| 71 | 71 | - Maintenant, vous sous-classez cette GroupBox les RadioButtons *rbRed*, *rbGreen* et *rblue* : | |
| 72 | 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 | 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 | 74 | - Maintenant placez un second GroupBox sur votre fiche nommée *gbBrightness* avec l'intitulé *Brightness*. | |
| 75 | 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 | 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 | 77 | - Dans le gestionnaire d'événement *OnClick* de *btnPaint*, modifiez le code en : | |
| 78 | 78 | ||
| 79 | 79 | ``` pascal | |
| 80 | 80 | procedure TForm1.btnPaintClick(Sender: TObject); | |
| 81 | 81 | begin | |
| 82 | 82 | if rbRed.Checked then Color:=Brightness or clRed; | |
| 83 | 83 | if rbGreen.Checked then Color:=Brightness or clLime; | |
| 84 | 84 | if rbBlue.Checked then Color:=Brightness or clBlue; | |
| 85 | 85 | end; | |
| 86 | 86 | ``` | |
| 87 | 87 | ||
| 88 | - | ||
| 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 : | |
| 89 | 89 | ||
| 90 | 90 | ``` pascal | |
| 91 | 91 | function TForm1.Brightness: TColor; | |
| 92 | 92 | begin | |
| 93 | 93 | Result:=0; | |
| 94 | 94 | if rbBrightMedDark.Checked then Result:=$888888; | |
| 95 | 95 | if rbBrightBright.Checked then Result:=$DDDDDD; | |
| 96 | 96 | end; | |
| 97 | 97 | ``` | |
| 98 | 98 | ||
| 99 | 99 | - D&marrez votre application, vous pouvez utilisez les boutons radio groupés séparément, cela doit donc ressembler à : | |
| 100 | 100 | ||
| 101 | 101 |  -\>  | |
| 102 | 102 | ||
| 103 | 103 | # Voir aussi | |
| 104 | 104 | ||
| 105 | 105 | - [[doc:lcl/stdctrls/tradiobutton.html|Doc. TRadioButton]] | |
| 106 | 106 | - [[TRadioGroup/fr|TRadioGroup]] - Usage de RadioGroups\ | |
| 107 | 107 | - [[TToggleBox/fr|TToggleBox]] - Usage de Toggleboxes\ | |
| 108 | 108 | - [[TCheckBox/fr|TCheckBox]] - Usage de CheckBoxes\ | |
| 109 | 109 | ||
| 110 | 110 | --- | |
| 111 | 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).* |
