TRadioButton/de

From Free Pascal wiki
Revision as of 11:32, 21 May 2014 by Michl (talk | contribs)
Jump to navigationJump to search

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

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

Beschreibung

Ein Auswahlbutton, der mit den anderen Radiobuttons zusammenarbeitet. Wenn ein Radiobutton aus einer Gruppe ausgewählt ist, kann kein Anderer ausgewählt sein.

Comp Standard TRadioButton.png

Verwendung

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

  • Erstellen Sie eine neue Anwendung und legen Sie auf dem Formular drei TRadioButtons ab.
  • Ändern Sie im Objektinspektor im Reiter Eigenschaften die Namen der RadioButton1..3 zu rbRed, rbGreen und rbBlue.
  • Entsprechend ändern Sie dort die Captions der Radiobuttons zu Rot, Grün und Blau.
  • Fügen Sie Ihrem Formular noch ein TButton hinzu und ändern seine Beschriftung (Caption) zu Neu Zeichnen und seinen Namen zu btnPaint.
  • 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.
  • Fügen Sie folgenden Code hinzu:
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;
  • Starten Sie Ihr Programm, es sollte ungefähr so aussehen:

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:

  • Erstellen Sie eine neue Anwendung und legen Sie auf dem Formular drei TRadioButtons ab.
  • Ändern Sie im Objektinspektor im Reiter Eigenschaften die Namen der RadioButton1..3 zu rbRed, rbGreen und rbBlue.
  • Entsprechend ändern Sie dort die Captions der Radiobuttons zu Rot, Grün und Blau.
  • 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.
  • Lassen Sie im Eventhandler OnChange der Radiobuttons die Farben des Formulars, gemäß geklickten Radiobutton, ändern:
procedure TForm1.rbRedChange(Sender: TObject);
begin
  Self.Color:=clRed;    //mit "Self" wählt man die Klasse, in der sich die Methode befindet (in diesem Fall Methode rbRedClick von TForm1)
end;

procedure TForm1.rbGreenChange(Sender: TObject);
begin
  Form1.Color:=clLime;  //man kann auch das Objekt (Form1) der Klasse wählen, ist aber ungünstig, da dann kein weiteres Objekt dieser Klasse erstellt werden kann
end;

procedure TForm1.rbBlueChange(Sender: TObject);
begin
  Color:=clBlue;        //oder man lässt "Self" weg und der Compiler erkennt automatisch die eigene Klasse
end;
  • Starten Sie Ihr Programm, es wird ungefähr so aussehen:

RadioButtonExample3.png -> RadioButtonExample4.png

Gruppierung

Wollen Sie mehrere Gruppen von RadioButtons auf Ihrem Formular verwenden, können Sie entweder die Komponente TRadioGruop ensetzen oder wie nachfolgend verfahren.

Fügen Sie Radiobuttons auf Ihrem Formular (Parent <yourForm> bekommt ein Control <yourButton>) hinzu, kann immer nur eins unterhalb dieses Parents (Eltern-Steuerelemnt) ausgewählt sein. Möchte man mehrere Radiobuttons auf einem Formular verwenden, die unabhängig voneinander gruppiert sind, muss man diesen jeweils einen anderen Parent zuweisen. Möglich ist dies, indem man einen Container (z.B. TPanel, TGroupBox, TNoteBook, TPageControl etc.) platziert, in dem diese Radiobuttons gruppert dem Formular zugewiesen werden.

Folgendes kleines Beispiel zeigt dies:

- in Bearbeitung --Michl 11:32, 21 May 2014 (CEST)


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

--Michl 09:27, 21 May 2014 (CEST)