TRadioButton/de: what changed
Revision 2 to 3. Removed lines have a minus sign; added lines have a plus sign.
| Old | New | Line | |
|---|---|---|---|
| 1 | - | ||
| 1 | + | [](</File:RadioButtonsRadioGroup.png>) | |
| 2 | 2 | ||
| 3 | + | Gegenüberstellung einiger TRadioButton und einer [[TRadioGroup/de|TRadioGroup]], jeweils mit den wichtigsten Eigenschaften in der Infobox. | |
| 4 | + | ||
| 5 | + | Diese Seite erklärt, wie man die [TRadioButton](<http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html> "doc:lcl/stdctrls/tradiobutton.html") Komponente verwendet. Auf etwas klicken bedeutet immer ein Linksklick, ein Rechtsklick wird explizit erwähnt. | |
| 6 | + | ||
| 3 | 7 | ## Beschreibung | |
| 4 | 8 | ||
| 5 | - | ||
| 9 | + | [](</File:tradiobutton.png>)**TRadioButton** 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. | |
| 6 | 10 | ||
| 7 | - | ||
| 11 | + | 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. | |
| 8 | 12 | ||
| 13 | + | 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. | |
| 14 | + | ||
| 9 | 15 | ## Verwendung | |
| 10 | 16 | ||
| 11 | - | ||
| 12 | - | ||
| 13 | - | ||
| 17 | + | [](</File:Comp_Standard_TRadioButton.png>) | |
| 14 | 18 | ||
| 19 | + | Um [TRadioButtons](<http://lazarus-ccr.sourceforge.net/docs/lcl/stdctrls/tradiobutton.html> "doc:lcl/stdctrls/tradiobutton.html") auf einem [[TForm/de|Formular]] zu nutzen, kann man sie einfach auf der Komponentenpalette _Standard_ auswählen und, mit einem Klick auf das Formular, platzieren. | |
| 20 | + | 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/de|TRadioGroup]] verwenden. | |
| 21 | + | 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/de|Boolean]] benutzen. Somit ist auch die Zuweisung **`<RadioButton>.Checked := True;`** möglich. | |
| 22 | + | ||
| 15 | 23 | ### Ein einfaches Beispiel | |
| 16 | 24 | ||
| 17 | - | ||
| 18 | - | ||
| 19 | - | ||
| 20 | - | ||
| 21 | - | ||
| 22 | - | ||
| 25 | + | * Erstellen Sie eine neue Anwendung und legen Sie auf dem Formular drei TRadioButtons ab. | |
| 26 | + | * Ändern Sie im Objektinspektor im Reiter Eigenschaften die Namen der RadioButton1..3 zu _rbRed_ , _rbGreen_ und _rbBlue_. | |
| 27 | + | * Entsprechend ändern Sie dort die Captions der Radiobuttons zu _Rot_ , _Grün_ und _Blau_. | |
| 28 | + | * Fügen Sie Ihrem Formular noch ein [[TButton/de|TButton]] hinzu und ändern seine Beschriftung (Caption) zu _Neu Zeichnen_ und seinen Namen zu _btnPaint_. | |
| 29 | + | * Erstellen Sie den _OnClick_ Eventhandler für den TButton, indem Sie im Objektinspektor auf den Reiter Ereignisse klicken, das Ereignis _OnClick_ auswählen und den Button [...] klicken oder den Button im Formular doppelklicken. | |
| 30 | + | * Fügen Sie folgenden Code hinzu: | |
| 23 | 31 | ||
| 24 | - | ||
| 32 | + | ``` | |
| 25 | 33 | procedure TForm1.btnPaintClick(Sender: TObject); | |
| 26 | - | ||
| 27 | - | ||
| 28 | - | ||
| 29 | - | ||
| 30 | - | ||
| 34 | + | begin | |
| 35 | + | if rbRed.Checked then Color:=clRed; | |
| 36 | + | if rbGreen.Checked then Color:=clLime; | |
| 37 | + | if rbBlue.Checked then Color:=clBlue; | |
| 38 | + | end; | |
| 31 | 39 | ``` | |
| 32 | 40 | ||
| 33 | - | ||
| 41 | + | * Starten Sie Ihr Programm, es sollte ungefähr so aussehen: | |
| 34 | 42 | ||
| 35 | - | ||
| 43 | + | [](</File:RadioButtonExample1.png>) -> [](</File:RadioButtonExample2.png>) | |
| 36 | 44 | ||
| 37 | 45 | ### Verwendung eines Ereignisses | |
| 38 | 46 | ||
| 39 | - | ||
| 40 | - | ||
| 41 | - | ||
| 42 | - | ||
| 43 | - | ||
| 44 | - | ||
| 45 | - | ||
| 46 | - | ||
| 47 | + | 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. | |
| 47 | 48 | ||
| 48 | - | ||
| 49 | - | ||
| 50 | - | ||
| 51 | - | ||
| 52 | - | ||
| 49 | + | 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: | |
| 53 | 50 | ||
| 54 | - | ||
| 55 | - | ||
| 56 | - | ||
| 57 | - | ||
| 58 | - | ||
| 51 | + | * Erstellen Sie eine neue Anwendung und legen Sie auf dem Formular drei TRadioButtons ab. | |
| 52 | + | * Ändern Sie im Objektinspektor im Reiter Eigenschaften die Namen der RadioButton1..3 zu _rbRed_ , _rbGreen_ und _rbBlue_. | |
| 53 | + | * Entsprechend ändern Sie dort die Captions der Radiobuttons zu _Rot_ , _Grün_ und _Blau_. | |
| 54 | + | * Erstellen Sie für jeden Radiobutton einen _Onchange_ -Eventhandler, indem Sie im Objektinspektor auf den Reiter Ereignisse klicken, das Ereignis _Onchange_ auswählen und den Button [...] klicken. Sie können aber auch den jeweiligen Radiobutton doppelklicken. | |
| 55 | + | * Lassen Sie im Eventhandler _OnChange_ der Radiobuttons die Farben des Formulars, gemäß geklickten Radiobutton, ändern: | |
| 59 | 56 | ||
| 60 | - | ||
| 61 | - | ||
| 62 | - | ||
| 63 | - | ||
| 64 | 57 | ``` | |
| 58 | + | procedure TForm1.rbRedChange(Sender: TObject); | |
| 59 | + | begin | |
| 60 | + | Self.Color:=clRed; //mit "Self" wählt man das Objekt, in der sich die Methode befindet (Methode: rbRedChange / Objekt: Form1) | |
| 61 | + | end; | |
| 62 | + | ||
| 63 | + | procedure TForm1.rbGreenChange(Sender: TObject); | |
| 64 | + | begin | |
| 65 | + | Form1.Color:=clLime; //man kann auch das Objekt "Form1" direkt wählen, ist aber ungünstig, | |
| 66 | + | //da dann kein weiteres Objekt der Klasse "TForm1" erstellt werden kann | |
| 67 | + | end; | |
| 68 | + | ||
| 69 | + | procedure TForm1.rbBlueChange(Sender: TObject); | |
| 70 | + | begin | |
| 71 | + | Color:=clBlue; //oder man lässt "Self" weg und der Compiler erkennt automatisch das eigene Objekt | |
| 72 | + | end; | |
| 73 | + | ``` | |
| 65 | 74 | ||
| 66 | - | ||
| 75 | + | * Starten Sie Ihr Programm, es wird ungefähr so aussehen: | |
| 67 | 76 | ||
| 68 | - | ||
| 77 | + | [](</File:RadioButtonExample3.png>) -> [](</File:RadioButtonExample4.png>) | |
| 69 | 78 | ||
| 70 | 79 | ### Gruppierung | |
| 71 | 80 | ||
| 72 | - | ||
| 73 | - | ||
| 81 | + | Fügen Sie Radiobuttons Ihrem Formular hinzu, ist der [[Parent/de|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. | |
| 82 | + | 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/de|TRadioGroup]] oder sie gruppieren Sie selber auf einem Control (z.B. [[TPanel/de|TPanel]], [[TGroupBox/de|TGroupBox]], [[TNotebook/de|TNoteBook]], [[TPageControl/de|TPageControl]] etc.). | |
| 74 | 83 | ||
| 75 | - | ||
| 84 | + | Folgendes kleines Beispiel zeigt Ihnen, wie sie Radiobuttons selber gruppieren können: | |
| 76 | 85 | ||
| 77 | - | ||
| 86 | + | Sie können dazu das Beispiel [[TRadioButton/de|Ein einfaches Beispiel]] umfunktionieren oder ein neues erstellen: | |
| 78 | 87 | ||
| 79 | - | ||
| 80 | - | ||
| 81 | - | ||
| 82 | - | ||
| 83 | - | ||
| 84 | - | ||
| 85 | - | ||
| 86 | - | ||
| 87 | - | ||
| 88 | + | * Als erstes müssten Sie eine [[TGroupBox/de|TGroupBox]] von der Standard Komponentenpalette auf Ihr Formular platzieren. | |
| 89 | + | * Dieser GroupBox geben Sie den Namen _gbColor_ und Caption _Farbe_. | |
| 90 | + | * Nun ordnen Sie dieser Groupbox die Radiobuttons _rbRed_ , _rbGreen_ und _rbBlue_ unter: | |
| 91 | + | * Im veränderten Projekt können Sie nacheinander die Radiobuttons **im Objektinspektor** per Drag and Drop auf _gbColor_ verschieben. | |
| 92 | + | * In einem neuen Projekt können Sie nacheinander die drei Radiobuttons einfügen, indem Sie zum Einfügen in die Groupbox klicken, die Namen _rbRed_ , _rbGreen_ und _rbBlue_ vergeben und die Captions zu _Rot_ , _Grün_ und _Blau_ ändern. | |
| 93 | + | * Nun platzieren Sie eine zweite TGroupBox auf Ihrem Formular mit dem Namen _gbBrightness_ und der Caption _Helligkeit_. | |
| 94 | + | * Fügen Sie dieser Groupbox ebenfalls drei Radiobuttons hinzu und geben diesen die Namen _rbBrightDark_ , _rbBrightMedDark_ und _rbBrightBright_ und die Captions _Dunkel_ , _Halbdunkel_ und _Hell_. | |
| 95 | + | * Falls Sie eine neue Anwendung erstellt haben, müssen Sie dem Formular noch einen Button mit dem Namen _btnPaint_ und Caption _Neu Zeichnen_ hinzufügen. | |
| 96 | + | * Im _OnClick_ -Eventhandler von _btnPaint_ ändern Sie den Code zu: | |
| 88 | 97 | ||
| 89 | - | ||
| 98 | + | ``` | |
| 90 | 99 | procedure TForm1.btnPaintClick(Sender: TObject); | |
| 91 | - | ||
| 92 | - | ||
| 93 | - | ||
| 94 | - | ||
| 95 | - | ||
| 100 | + | begin | |
| 101 | + | if rbRed.Checked then Color:=Brightness or clRed; | |
| 102 | + | if rbGreen.Checked then Color:=Brightness or clLime; | |
| 103 | + | if rbBlue.Checked then Color:=Brightness or clBlue; | |
| 104 | + | end; | |
| 96 | 105 | ``` | |
| 97 | 106 | ||
| 98 | - | ||
| 107 | + | * Nun erstellen Sie noch die Function _Brightness_ , indem Sie **`function Brightness: TColor;`** im _private_ -Abschnitt von TForm1 eingeben und [Ctrl]+[Shift]+[c] drücken (Codevervollständigung). Es wird die Function erstellt. Geben Sie dort folgenden Code ein: | |
| 99 | 108 | ||
| 100 | - | ||
| 109 | + | ``` | |
| 101 | 110 | function TForm1.Brightness: TColor; | |
| 102 | - | ||
| 103 | - | ||
| 104 | - | ||
| 105 | - | ||
| 106 | - | ||
| 111 | + | begin | |
| 112 | + | Result:=0; | |
| 113 | + | if rbBrightMedDark.Checked then Result:=$888888; | |
| 114 | + | if rbBrightBright.Checked then Result:=$DDDDDD; | |
| 115 | + | end; | |
| 107 | 116 | ``` | |
| 108 | 117 | ||
| 109 | - | ||
| 118 | + | * Starten Sie Ihr Programm, sie können die gruppierten Radiobuttons voneinander unabhängig einsetzen, so könnte es aussehen: | |
| 110 | 119 | ||
| 111 | - | ||
| 120 | + | [](</File:RadioButtonExample5.png>) -> [](</File:RadioButtonExample6.png>) | |
| 112 | 121 | ||
| 113 | 122 | ## Siehe auch | |
| 114 | 123 | ||
| 115 | - | ||
| 116 | - | ||
| 117 | - | ||
| 124 | + | * [](</File:tradiogroup.png>) [[TRadioGroup/de|TRadioGroup]] \- Gruppierung von RadioButtons | |
| 125 | + | * [](</File:ttogglebox.png>) [[TToggleBox/de|TToggleBox]] \- An/Aus-Zustandsdarstellung über Schaltflächen (gedrückt/nicht gedrückt) | |
| 126 | + | * [](</File:tcheckbox.png>) [[TCheckBox/de|TCheckBox]] \- Alternative mit Häkchen die einen An/Aus-Zustand einer einzelnen Option steuern können | |
| 127 | + | * [](</File:tcheckgroup.png>) [[TCheckGroup/de|TCheckGroup]] \- Ähnlich der TRadioGroup aber mit Häkchen als Auswahl-Elemente | |
| 128 | + | * [](</File:tlistbox.png>) [[TListBox/de|TListBox]] \- Alternative Darstellung einer Liste zur Auswahl eines Elementes (erlaubt auch Multi-Select) | |
| 129 | + | * [](</File:tpanel.png>) [[TPanel/de|TPanel]] \- Generell zur Gruppierung von Elementen verwendbar (Container) | |
| 130 | + | * [](</File:tgroupbox.png>) [[TGroupBox/de|TGroupBox]] \- Generell zur Gruppierung in einem Kasten mit Überschrift (Container) | |
| 131 | + | * [](</File:tflowpanel.png>) [[TFlowPanel/de|TFlowPanel]] \- Generelle Gruppierung mit automatischer, fliessenden Aneinanderreihung (Container mit "Zeilenumbrüchen") (siehe [[TFlowPanel|TFlowPanel (en)]]) | |
| 132 | + | * [](</File:tcombobox.png>) [[TComboBox/de|TComboBox]] \- Alternatives Element zur Auswahl einer einzelnen Option aus einer ausklappbaren Liste | |
| 118 | 133 | ||
| 134 | + | * * * | |
| 135 | + | ||
| 136 | + | Gehe zurück zu: [[LCL Components/de|LCL Components]] | — Komponente zuvor: [[TCheckBox/de]] | Nächste Komponente: [[TListBox/de]] | |
| 137 | + | ---|---|--- | |
| 138 | + | [[LCL Components/de|LCL Komponenten]] Komponenten Tab | Komponenten | |
| 139 | + | ---|--- | |
| 140 | + | Standard | [[TMainMenu/de|TMainMenu]] • [[TPopupMenu/de|TPopupMenu]] • [[TButton/de|TButton]] • [[TLabel/de|TLabel]] • [[TEdit/de|TEdit]] • [[TMemo/de|TMemo]] • [[TToggleBox/de|TToggleBox]] • [[TCheckBox/de|TCheckBox]] • TRadioButton • [[TListBox/de|TListBox]] • [[TComboBox/de|TComboBox]] • [[TScrollBar/de|TScrollBar]] • [[TGroupBox/de|TGroupBox]] • [[TRadioGroup/de|TRadioGroup]] • [[TCheckGroup/de|TCheckGroup]] • [[TPanel]] • [[Frames|TFrame]] • [[TActionList]] | |
| 141 | + | Additional | [[TBitBtn]] • [[TSpeedBtn]] • [[TStaticText]] • [[TImage]] • [[TShape]] • [[TBevel]] • [[TPaintBox]] • [[TNotebook]] • [[TLabeledEdit]] • [[TSplitter/de|TSplitter]] • [[TTrayIcon]] • [[TMaskEdit]] • [[TCheckListBox]] • [[TScrollBox]] • [[TApplicationProperties]] • [[TStringGrid]] • [[TDrawGrid]] • [[TPairSplitter]] • [[TColorBox]] • [[TColorListBox]] • [[TValueListEditor]] | |
| 142 | + | Common Controls | [[TTrackBar]] • [[TProgressBar]] • [[TTreeView]] • [[TListView]] • [[TStatusBar]] • [[TToolBar]] • [[TUpDown]] • [[TPageControl]] • [[TTabControl]] • [[THeaderControl]] • [[TImageList]] • [[TPopupNotifier]] | |
| 143 | + | Dialogs | [[TOpenDialog]] • [[TSaveDialog]] • [[TSelectDirectoryDialog]] • [[TColorDialog]] • [[TFontDialog]] • [[TFindDialog]] • [[TReplaceDialog]] • [[TOpenPictureDialog]] • [[TSavePictureDialog]] • [[TCalendarDialog]] • [[TCalculatorDialog]] • [[TPrinterSetupDialog]] • [[TPrintDialog]] • [[TPageSetupDialog]] | |
| 144 | + | Data Controls | [[TDBNavigator]] • [[TDBText]] • [[TDBEdit]] • [[TDBMemo]] • [[TDBImage]] • [[TDBListBox]] • [[TDBLookupListBox]] • [[TDBComboBox]] • [[TDBLookupComboBox]] • [[TDBCheckBox]] • [[TDBRadioGroup]] • [[TDBCalendar]] • [[TDBGroupBox]] • [[TDBGrid]] | |
| 145 | + | System | [[TTimer]] • [[TIdleTimer]] • [[TLazComponentQueue]] • [[THTMLHelpDatabase]] • [[THTMLBrowserHelpViewer]] • [[TAsyncProcess]] • [[TProcessUTF8]] • [[TProcess]] • [[TSimpleIPCClient]] • [[TXMLConfig]] • [[TEventLog]] • [[TServiceManager]] | |
| 146 | + | Misc | [[TColorButton]] • [[TSpinEdit]] • [[TFloatSpinEdit]] • [[TArrow]] • [[TCalendar]] • [[TEditButton]] • [[TFileNameEdit]] • [[TDirectoryEdit]] • [[TDateEdit]] • [[TCalcEdit]] • [[TFileListBox]] • [[TFilterComboBox]] • [[TXMLPropStorage/de|TXMLPropStorage]] • [[TINIPropStorage/de|TINIPropStorage]] • [[TBarChart]] • [[TButtonPanel]] • [[TShellTreeView]] • [[TShellListView]] • [[TIDEDialogLayoutStorage]] | |
| 147 | + | Data Access | [[TDatasource]] • [[TBufDataset]] • [[TMemDataset]] • [[TSdfDataset]] • [[TFixedFormatDataSet]] • [[TDbf]] | |
| 148 | + | 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]] | |
| 149 | + | LazControls | [[TDividerBevel]] • [[TExtendedNotebook]] • [[TListFilterEdit]] • [[TTreeFilterEdit]] | |
| 150 | + | RTTI | [[TTIEdit]] • [[TTIComboBox]] • [[TTIButton]] • [[TTICheckBox]] • [[TTILabel]] • [[TTIGroupBox]] • [[TTIRadioGroup]] • [[TTICheckGroup]] • [[TTICheckListBox]] • [[TTIListBox]] • [[TTIMemo]] • [[TTICalendar]] • [[TTIImage]] • [[TTIFloatSpinEdit]] • [[TTISpinEdit]] • [[TTITrackBar]] • [[TTIProgressBar]] • [[TTIMaskEdit]] • [[TTIColorButton]] • [[TMultiPropertyLink]] • [[TTIPropertyGrid]] • [[TTIGrid]] | |
| 151 | + | IPro | [[TIpFileDataProvider]] • [[TIpHtmlPanel]] | |
| 152 | + | Chart | [[TChart]] • [[TListChartSource]] [[TRandomChartSource]] • [[TUserDefinedChartSource]] • [[TCalculatedChartSource]] • [[TDbChartSource]] • [[TChartToolset]] • [[TChartAxisTransformations]] • [[TChartStyles]] • [[TChartLegendPanel]] • [[TChartNavScrollBar]] • [[TChartNavPanel]] • [[TIntervalChartSource]] • [[TDateTimeIntervalChartSource]] • [[TChartListBox]] • [[TChartExtentLink]] • [[TChartImageList]] | |
| 153 | + | SQLdb | [[TSQLQuery]] • [[TSQLTransaction]] • [[TSQLScript]] • [[TSQLConnector]] • [[TMSSQLConnection]] • [[TSybaseConnection]] •[[TPQConnection]] • [[TPQTEventMonitor]] • [[TOracleConnection]] • [[TODBCConnection]] • [[TMySQL40Connection]] • [[TMySQL41Connection]] • [[TMySQL50Connection]] • [[TMySQL51Connection]] • [[TMySQL55Connection]] • [[TMySQL56Connection]] • [[TSQLite3Connection]] • [[TIBConnection]] • [[TFBAdmin]] • [[TFBEventMonitor]] • [[TSQLDBLibraryLoader]] | |
| 154 | + | ||
| 119 | 155 | --- | |
| 120 | - | ||
| 156 | + | *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](/wiki-contact).* |
