Sign in Join
Wiki copytemporary

Revision 3 of 3, by WikiArchive on 11-10-2026. The page as it is now.

TRadioButton/de

Gegenüberstellung einiger TRadioButton und einer TRadioGroup, jeweils mit den wichtigsten Eigenschaften in der Infobox.

Diese Seite erklärt, wie man die TRadioButton Komponente verwendet. Auf etwas klicken bedeutet immer ein Linksklick, ein Rechtsklick wird explizit erwähnt.

Beschreibung

tradiobutton.pngTRadioButton ist ein Steuerelement, das eine "eins von mehreren"-Auswahl ermöglicht und alle möglichen Optionen gleichzeitig präsentiert. Prinzipiell ist jeder RadioButton eine eigene Komponente und kann frei platziert und in der Darstellung verändert werden ohne die anderen zu beeinflussen. Alternativ bieten sich TRadioGroup oder andere Darstellungsformen wie TComboBox oder TListBox an, die die Anordnung der Elemente automatisch vereinheitlichen können und ebenfalls eine Auswahl "eine von mehreren" abbilden.

Die wichtigste Eigenschaft zur Steuerung des TRadioButton ist Checked (Boolean) die sowohl lesbar als auch schreibbar ist und angibt ob das Steuerelement als "ausgewählt" dargestellt werden soll oder nicht.

Die Gruppierung der Radiobuttons ist abhängig von ihrer Parent Eigenschaft, also zu welchem Container-Objekt sie gehören. Es muss keine ButtonGroup Eigenschaft extra eingestellt werden. Die Eigenschaft Checked wird automatisch richtig eingestellt unter allen Radiobuttons im selben Container, sodass immer nur einer ausgewählt ist. Wenn mehrere unabhängige Auswahlgruppen benötigt werden, können RadioButtons z.B. in einem TPanel gruppiert werden.

Verwendung

Comp Standard TRadioButton.png

Um TRadioButtons auf einem Formular zu nutzen, kann man sie einfach auf der Komponentenpalette Standard auswählen und, mit einem Klick auf das Formular, platzieren.
Es macht zumeist keinen Sinn einen einzelnen RadioButton zu nutzen, da RadioButtons als Auswahlelemente dienen sollen. Daher kann man statt einzelner Radiobuttons auch eine TRadioGroup verwenden.
Sie können überall in Ihrem Quellcode den Status der Radiobuttons, ob aktiv oder inaktiv, mit Status := <RadioButton>.Checked; abfragen. Dabei können Sie Checked wie ein normalen Boolean benutzen. Somit ist auch die Zuweisung <RadioButton>.Checked := True; möglich.

Ein einfaches Beispiel

pascal
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;

RadioButtonExample1.png -> RadioButtonExample2.png

Verwendung eines Ereignisses

Der Unterschied zu dem vorherigen Beispiel besteht darin, dass wir das Formular nicht über einen Buttonklick neu zeichnen lassen, sondern schon durch das Anklicken eines der Radiobuttons selber.

Sie können das vorhergehende Beispiel modifizieren, indem Sie den Button und dessen OnClick -Eventhandler im Quelltext löschen. Sie können aber auch einfach ein neues Beispiel erstellen:

pascal
procedure TForm1.rbRedChange(Sender: TObject);
    begin
      Self.Color:=clRed;    //mit "Self" wählt man das Objekt, in der sich die Methode befindet (Methode: rbRedChange / Objekt: Form1)
    end;
    
    procedure TForm1.rbGreenChange(Sender: TObject);
    begin
      Form1.Color:=clLime;  //man kann auch das Objekt "Form1" direkt wählen, ist aber ungünstig, 
                            //da dann kein weiteres Objekt der Klasse "TForm1" erstellt werden kann
    end;
    
    procedure TForm1.rbBlueChange(Sender: TObject);
    begin
      Color:=clBlue;        //oder man lässt "Self" weg und der Compiler erkennt automatisch das eigene Objekt
    end;

RadioButtonExample3.png -> RadioButtonExample4.png

Gruppierung

Fügen Sie Radiobuttons Ihrem Formular hinzu, ist der Parent (Steuerelement, welches den Radiobutton beinhaltet) Ihr Formular. Bei jedem Setzen (egal, ob per Code oder Nutzer per Buttonklick) eines <RadioButton>.Checked:=True; wird geprüft, ob noch ein anderer Radiobutton, mit diesem Parent, ausgewählt ist und falls ja, dieser auf nicht ausgewählt gesetzt.
Wollen Sie trotzdem mehrere Radiobuttons auf Ihrem Formular nutzen, die verschiedene, unabhängige Auswahlmöglichkeiten bieten sollen, müssen Sie die Radiobuttons gruppieren. Dazu gibt es eine fertige Komponente TRadioGroup oder sie gruppieren Sie selber auf einem Control (z.B. TPanel, TGroupBox, TNoteBook, TPageControl etc.).

Folgendes kleines Beispiel zeigt Ihnen, wie sie Radiobuttons selber gruppieren können:

Sie können dazu das Beispiel Ein einfaches Beispiel umfunktionieren oder ein neues erstellen:

pascal
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;
pascal
function TForm1.Brightness: TColor;
    begin
      Result:=0;
      if rbBrightMedDark.Checked then Result:=$888888;
      if rbBrightBright.Checked  then Result:=$DDDDDD;
    end;

RadioButtonExample5.png -> RadioButtonExample6.png

Siehe auch


Gehe zurück zu: LCL Components — Komponente zuvor: TCheckBox/de Nächste Komponente: TListBox/de
LCL Komponenten Komponenten Tab Komponenten
--- ---
Standard TMainMenu • TPopupMenu • TButton • TLabel • TEdit • TMemo • TToggleBox • TCheckBox • TRadioButton • TListBox • TComboBox • TScrollBar • TGroupBox • TRadioGroup • TCheckGroup • TPanel • TFrame • TActionList
Additional TBitBtn • TSpeedBtn • TStaticText • TImage • TShape • TBevel • TPaintBox • TNotebook • TLabeledEdit • TSplitter • TTrayIcon • TMaskEdit • TCheckListBox • TScrollBox • TApplicationProperties • TStringGrid • TDrawGrid • TPairSplitter • TColorBox • TColorListBox • TValueListEditor
Common Controls TTrackBar • TProgressBar • TTreeView • TListView • TStatusBar • TToolBar • TUpDown • TPageControl • TTabControl • THeaderControl • TImageList • TPopupNotifier
Dialogs TOpenDialog • TSaveDialog • TSelectDirectoryDialog • TColorDialog • TFontDialog • TFindDialog • TReplaceDialog • TOpenPictureDialog • TSavePictureDialog • TCalendarDialog • TCalculatorDialog • TPrinterSetupDialog • TPrintDialog • TPageSetupDialog
Data Controls TDBNavigator • TDBText • TDBEdit • TDBMemo • TDBImage • TDBListBox • TDBLookupListBox • TDBComboBox • TDBLookupComboBox • TDBCheckBox • TDBRadioGroup • TDBCalendar • TDBGroupBox • TDBGrid
System TTimer • TIdleTimer • TLazComponentQueue • THTMLHelpDatabase • THTMLBrowserHelpViewer • TAsyncProcess • TProcessUTF8 • TProcess • TSimpleIPCClient • TXMLConfig • TEventLog • TServiceManager
Misc TColorButton • TSpinEdit • TFloatSpinEdit • TArrow • TCalendar • TEditButton • TFileNameEdit • TDirectoryEdit • TDateEdit • TCalcEdit • TFileListBox • TFilterComboBox • TXMLPropStorage • TINIPropStorage • TBarChart • TButtonPanel • TShellTreeView • TShellListView • TIDEDialogLayoutStorage
Data Access TDatasource • TBufDataset • TMemDataset • TSdfDataset • TFixedFormatDataSet • TDbf
SynEdit TSynEdit • TSynMemo • 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
LazControls TDividerBevel • TExtendedNotebook • TListFilterEdit • TTreeFilterEdit
RTTI TTIEdit • TTIComboBox • TTIButton • TTICheckBox • TTILabel • TTIGroupBox • TTIRadioGroup • TTICheckGroup • TTICheckListBox • TTIListBox • TTIMemo • TTICalendar • TTIImage • TTIFloatSpinEdit • TTISpinEdit • TTITrackBar • TTIProgressBar • TTIMaskEdit • TTIColorButton • TMultiPropertyLink • TTIPropertyGrid • TTIGrid
IPro TIpFileDataProvider • TIpHtmlPanel
Chart TChart • TListChartSource TRandomChartSource • TUserDefinedChartSource • TCalculatedChartSource • TDbChartSource • TChartToolset • TChartAxisTransformations • TChartStyles • TChartLegendPanel • TChartNavScrollBar • TChartNavPanel • TIntervalChartSource • TDateTimeIntervalChartSource • TChartListBox • TChartExtentLink • TChartImageList
SQLdb TSQLQuery • TSQLTransaction • TSQLScript • TSQLConnector • TMSSQLConnection • TSybaseConnection •TPQConnection • TPQTEventMonitor • TOracleConnection • TODBCConnection • TMySQL40Connection • TMySQL41Connection • TMySQL50Connection • TMySQL51Connection • TMySQL55Connection • TMySQL56Connection • TSQLite3Connection • TIBConnection • TFBAdmin • TFBEventMonitor • TSQLDBLibraryLoader

From the Free Pascal wiki, page "TRadioButton/de", as the Internet Archive kept it on 2025-03-26, last changed on 2024-11-22. 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.