TRadioButton/fr

From Lazarus wiki
Jump to navigationJump to search

Deutsch (de) English (en) suomi (fi) français (fr) 日本語 (ja)

Un TRadioButton 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'onglet Standard de la palette de composants.

Pour utiliser un RadioButton sur une fiche, vous pouvez simplement le sélectionner sur la palette de composants Standard et le placer, avec un clic sur la fiche.
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 à la place de RadioButtons individuels.

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 booléen normal. Ainsi, l'affectation <RadioButton>.Checked := True; est possible.

Un simple exemple

  • Créez une nouvelle application et placez trois RadioButtons sur la fiche.
  • Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en rbRed, rbGreen et rbBlue.
  • De la même façon, vous pouvez changer les intitulés des RadioButtons en Red, Green et Blue.
  • Ajoutez à votre fiche, un bouton et changez son intitulé en Draw new et son nom en btnPaint.
  • 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.
  • Ajoutez le code suivant :
procedure TForm1.btnPaintClick(Sender: TObject);
begin
  if rbRed.Checked   then Color:=clRed;
  if rbGreen.Checked then Color:=clLime;
  if rbBlue.Checked  then Color:=clBlue;
end;
  • Ouvrez votre application, elle devrait ressembler à quelque chose comme cela :

RadioButtonExample1.png -> RadioButtonExample2.png

Usage d'un événement

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.

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 :

  • Créez une nouvelle application et placez trois RadioButtons sur la fiche.
  • Dans l'onglet Propriétés de l'inspecteur d'objets, changez les noms des RadioButtons en rbRed, rbGreen et rbBlue.
  • De la même façon, vous pouvez changer les intitulés des RadioButtons en Red, Green etBlue.
  • 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.
  • Faites changer la couleur de la fiche par le gestionnaire d'événement OnChange selon le RadioButton sélectionné :
procedure TForm1.rbRedChange(Sender: TObject);
begin
  Self.Color:=clRed;    //with "Self", you select the object in which the method exists (method: rbRedChange / object: Form1)
end;

procedure TForm1.rbGreenChange(Sender: TObject);
begin
  Form1.Color:=clLime;  //You can directly select the object ''Form1'', but poor, 
                        //because then no other object of class 'TForm1' can be created
end;

procedure TForm1.rbBlueChange(Sender: TObject);
begin
  Color:=clBlue;        //or you leave out "Self" and the compiler will automatically detect its own object
end;
  • Ouvrez votre application, elle devrait ressembler à ceci :

RadioButtonExample3.png -> RadioButtonExample4.png

Groupement

Si vous ajoutez un RadioButton sur votre fiche, celle-ci est le 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.
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 ou grouper vos RadioButtons sur un contrôle (p.ex. TPanel, TGroupBox, TNotebook, TPageControl etc.).

L'exemple suivant montre comment vous pouvez regrouper les RadioButtons : Vous pouvez modifier l'exemple Un simple exemple ou créer une nouvelle application :

  • En premier, vous placez un TGroupBox de la palette de composants Standard sur votre fiche.
  • Vous changez son nom en gbColor et son intitulé en Color.
  • Maintenant, vous sous-classez cette GroupBox les RadioButtons rbRed, rbGreen et rblue :
    • Dans le projet modifié, vous pouvez séquentiellement daéplacer les RadioButtons dans l'inspecteur d'objet en glissant et déposant vers gbColor.
    • 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.
  • Maintenant placez un second GroupBox sur votre fiche nommée gbBrightness avec l'intitulé Brightness.
  • Ajoutez aussi dans ce GroupBox trois RadioButtons et donnez-leur les noms rbBrightDark, rbBrightMedDark et rbBrightBright et les intitulés Dark, MediumDark et Bright.
  • Si vous avez créé une nouvelle application, vous devez ajouter un bouton avec le nom btnPaint et l'intitulé Draw new à la fiche.
  • Dans le gestionnaire d'événement OnClick de btnPaint, modifiez le code en :
procedure TForm1.btnPaintClick(Sender: TObject);
begin
  if rbRed.Checked   then Color:=Brightness or clRed;
  if rbGreen.Checked then Color:=Brightness or clLime;
  if rbBlue.Checked  then Color:=Brightness or clBlue;  
end;
  • 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 :
function TForm1.Brightness: TColor;
begin
  Result:=0;
  if rbBrightMedDark.Checked then Result:=$888888;
  if rbBrightBright.Checked  then Result:=$DDDDDD;
end;
  • D&marrez votre application, vous pouvez utilisez les boutons radio groupés séparément, cela doit donc ressembler à :

RadioButtonExample5.png -> RadioButtonExample6.png

Voir aussi


Composant LCL
Onglet de palette Composants
Standard TMainMenu • TPopupMenu • TButton • TLabel • TEdit • TMemo • TToggleBox • TCheckBox • TRadioButton • TListBox • TComboBox • TScrollBar • TGroupBox • TRadioGroup • TCheckGroup • TPanel • TFrame • TActionList
Additional TBitBtn • TSpeedButton • TStaticText • TImage • TShape • TBevel • TPaintBox • TNotebook • TLabeledEdit • TSplitter • TTrayIcon • TControlBar • TFlowPanel • TMaskEdit • TCheckListBox • TScrollBox • TApplicationProperties • TStringGrid • TDrawGrid • TPairSplitter • TColorBox • TColorListBox • TValueListEditor
Common Controls TTrackBar • TProgressBar • TTreeView • TListView • TStatusBar • TToolBar • TCoolBar • TUpDown • TPageControl • TTabControl • THeaderControl • TImageList • TPopupNotifier • TDateTimePicker
Dialogs TOpenDialog • TSaveDialog • TSelectDirectoryDialog • TColorDialog • TFontDialog • TFindDialog • TReplaceDialog • TOpenPictureDialog • TSavePictureDialog • TCalendarDialog • TCalculatorDialog • TPrinterSetupDialog • TPrintDialog • TPageSetupDialog • TTaskDialog
Data Controls TDBNavigator • TDBText • TDBEdit • TDBMemo • TDBImage • TDBListBox • TDBLookupListBox • TDBComboBox • TDBLookupComboBox • TDBCheckBox • TDBRadioGroup • TDBCalendar • TDBGroupBox • TDBGrid • TDBDateTimePicker
Data Access TDataSource • TBufDataset • TMemDataset • TSdfDataSet • TFixedFormatDataSet • TDbf
System TTimer • TIdleTimer • TLazComponentQueue • THTMLHelpDatabase • THTMLBrowserHelpViewer • TAsyncProcess • TProcessUTF8 • TProcess • TSimpleIPCClient • TSimpleIPCServer • TXMLConfig • TEventLog • TServiceManager • TCHMHelpDatabase • TLHelpConnector
Misc TColorButton • TSpinEdit • TFloatSpinEdit • TArrow • TCalendar • TEditButton • TFileNameEdit • TDirectoryEdit • TDateEdit • TTimeEdit • TCalcEdit • TFileListBox • TFilterComboBox • TComboBoxEx • TCheckComboBox • TButtonPanel • TShellTreeView • TShellListView • TXMLPropStorage • TINIPropStorage • TIDEDialogLayoutStorage • TMRUManager • TStrHolder
LazControls TCheckBoxThemed • TDividerBevel • TExtendedNotebook • TListFilterEdit • TListViewFilterEdit • TTreeFilterEdit • TShortPathEdit • TLvlGraphControl
RTTI TTIEdit • TTIComboBox • TTIButton • TTICheckBox • TTILabel • TTIGroupBox • TTIRadioGroup • TTICheckGroup • TTICheckListBox • TTIListBox • TTIMemo • TTICalendar • TTIImage • TTIFloatSpinEdit • TTISpinEdit • TTITrackBar • TTIProgressBar • TTIMaskEdit • TTIColorButton • TMultiPropertyLink • TTIPropertyGrid • TTIGrid
SQLdb TSQLQuery • TSQLTransaction • TSQLScript • TSQLConnector • TMSSQLConnection • TSybaseConnection • TPQConnection • TPQTEventMonitor • TOracleConnection • TODBCConnection • TMySQL40Connection • TMySQL41Connection • TMySQL50Connection • TMySQL51Connection • TMySQL55Connection • TMySQL56Connection • TSQLite3Connection • TIBConnection • TFBAdmin • TFBEventMonitor • TSQLDBLibraryLoader
Pascal Script TPSScript • TPSScriptDebugger • TPSDllPlugin • TPSImport_Classes • TPSImport_DateUtils • TPSImport_ComObj • TPSImport_DB • TPSImport_Forms • TPSImport_Controls • TPSImport_StdCtrls • TPSCustomPlugin
SynEdit TSynEdit • TSynCompletion • TSynAutoComplete • TSynMacroRecorder • TSynExporterHTML • TSynPluginSyncroEdit • TSynPasSyn • TSynFreePascalSyn • TSynCppSyn • TSynJavaSyn • TSynPerlSyn • TSynHTMLSyn • TSynXMLSyn • TSynLFMSyn • TSynDiffSyn • TSynUNIXShellScriptSyn • TSynCssSyn • TSynPHPSyn • TSynTeXSyn • TSynSQLSyn • TSynPythonSyn • TSynVBSyn • TSynAnySyn • TSynMultiSyn • TSynBatSyn • TSynIniSyn • TSynPoSyn
Chart TChart • TListChartSource • TRandomChartSource • TUserDefinedChartSource • TCalculatedChartSource • TDbChartSource • TChartToolset • TChartAxisTransformations • TChartStyles • TChartLegendPanel • TChartNavScrollBar • TChartNavPanel • TIntervalChartSource • TDateTimeIntervalChartSource • TChartListBox • TChartExtentLink • TChartImageList
IPro TIpFileDataProvider • TIpHttpDataProvider • TIpHtmlPanel