Sign in Join
Wiki copytemporary

TRadioGroup/de: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: TRadioGroup/de

OldNewLine
1+Diese Seite erklärt, wie man die [[doc:lcl/extctrls/tradiogroup.html|TRadioGroup]] Komponente verwendet. Auf etwas klicken bedeutet immer ein Linksklick, ein Rechtsklick wird explizit erwähnt.
2+
3+## Beschreibung
4+
5+Eine Gruppe RadioButtons, aus dieser der Benutzer eine Auswahl treffen kann. Die Komponente ist wie eine [[TGroupBox/de|TGroupBox]] mit integrierten [[TRadioButton/de|TRadioButtons]].
6+
7+<figure>
8+<img src="Comp_Standard_TRadioGroup.png" title="Comp_Standard_TRadioGroup.png" />
9+<figcaption>Comp_Standard_TRadioGroup.png</figcaption>
10+</figure>
11+
12+## Verwendung
13+
14+Um eine [[doc:lcl/extctrls/tradiogroup.html|TRadioGroup]] 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.\
15+
16+#### Kleines Beispiel
17+
18+Es sollen geometrische Figuren zufällig und in Abhängigkeit der TRadioGroups auf das Formular gezeichnet werden. RadioGroup1 bestimmt die Form, RadioGroup2 die Anzahl.
19+
20+- erstellen Sie eine neue Anwendung und platzieren Sie zwei TRadioGroups auf Ihrem Formular
21+- ändern Sie im Objektinspektor die Eigenschaft Name von *RadioGroup1* zu *rgShape* und die von *RadioGroup2* zu *rgCount*
22+- ändern Sie identisch Caption von *rgShape* zu *Shape* und die von *rgCount* zu *Count*
23+- fügen Sie die Radiobuttons für *rgShape* hinzu:
24+ - wählen Sie im Objektinspektor die Eigenschaft *Items* von *rgShape*
25+ - klicken Sie auf den Button \[...\], der Zeichenketteneditor öffnet sich
26+ - Schreiben Sie untereinander *Lines Rectangles Ellipses* und beenden Sie die Eingabe mit Button *OK*
27+- fügen Sie identisch die Radiobuttons für *rgCount* hinzu (untereinander geschrieben): *1 5 10 20 50 100*
28+- setzen Sie jeweils den ersten Radiobutton als *aktuell gewählt*, indem Sie im Objektinspektor die Eigenschaft *ItemIndex* von *rgShape* und *rgCount* von *-1* auf *0* stellen
29+- erstellen Sie den *OnClick* Eventhandler von *rgShape*, indem Sie *rgShape* doppelklicken
30+- nutzen Sie diesen Eventhandler ebenfalls für *rgCount*:
31+ - wählen Sie im Objektinspektor *rgCount*
32+ - nun wählen Sie im Objektinspektor den Reiter *Ereignisse*
33+ - gehen Sie zum Ereignis *OnClick* und wählen in der daneben befindlichen Combobox *rgShapeClick* aus
34+- immer, wenn *rgShape* oder *rgCount* geklickt wird, soll das Formular neu gezeichnet werden, schreiben Sie daher folgenden Code in den Eventhandler:
35+
36+``` pascal
37+procedure TForm1.rgShapeClick(Sender: TObject);
38+begin
39+ Repaint;
40+end;
41+```
42+
43+- immer wenn das Formular neu gezeichnet wird, sollen die geometrischen Formen gezeichnet werden:
44+ - gehen Sie im Objektinspektor auf *Form1*
45+ - wählen Sie den Reiter *Ereignisse*
46+ - klicken Sie auf den Button \[...\] neben dem Ereignis *OnPaint*
47+ - der Eventhandler wird erstellt, tragen Sie folgenden Code ein:
48+
49+``` pascal
50+procedure TForm1.FormPaint(Sender: TObject);
51+var
52+ i: Integer;
53+begin
54+ if TryStrToInt(rgCount.Items[rgCount.ItemIndex], i) then
55+ for i := 1 to i do begin
56+ Canvas.Pen.Color := Random($1000000);
57+ Canvas.Brush.Color := Random($1000000);
58+ case rgShape.Items[rgShape.ItemIndex] of
59+ 'Lines': Canvas.Line( Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
60+ 'Rectangles': Canvas.Rectangle(Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
61+ 'Ellipses': Canvas.Ellipse( Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
62+ end;
63+ end;
64+end;
65+```
66+
67+- starten Sie Ihre Anwendung, so könnte sie aussehen:
68+
69+<figure>
70+<img src="ExampleTRadioGroup.png" title="ExampleTRadioGroup.png" />
71+<figcaption>ExampleTRadioGroup.png</figcaption>
72+</figure>
73+
74+## Siehe auch
75+
76+- [[TRadioButton/de|TRadioButton]]
77+- [[TGroupBox/de|TGroupBox]]
78+
79+---
80+*From the Free Pascal wiki, page "TRadioGroup/de", 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).*

Back to history