Sign in Join
Wiki copytemporary

TRadioGroup/fi: what changed

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

Title: TRadioGroup/fi

OldNewLine
1+**TRadioGroup** ![](/wiki-images/e/e8/Tradiogroup.png) on ryhmä toisiinsa liittyviä mutta toisiaan poissulkevia [[TRadioButton/fi|valintapainikkeita (vertaa TRadioButton, radiopainike)]] , joka edellyttää käyttäjän valita vain jokin (yksi) joukosta vaihtoehtoja. Se on kuin [[TGroupBox]] integroidulla [[TRadioButton/fi|radiopainikkeilla]].
2+
3+## Käyttö
4+
5+Jos haluataan käyttää TRadioGroup:a [[TForm|lomakkeella]] , niin se voidaan valita [[Component Palette/fi|komponenttipaletin]] [[Standard tab/fi|Standard-välilehdeltä]] ja asettaa se klikkaamalla lomakkeelle.
6+
7+### Pieni esimerkki
8+
9+Tässä esimerkissä piirretään satubnnaiseesti geometrisiä muotoja jotka määräytyvät mitä on lomakkeella radiopainikkeista TRadioGroup valittu. RadioGroup1 määrittää kuvion ja RadioGroup2 määrän.
10+
11+- Luodaan uusi sovellus ja sijoitetaan kaksi TRadioGroup:a lomakkeelle
12+- Muutetaan komponenttimuokkaimessa *RadioGroup1* [[Property/fi|ominaisuus]] *Name* arvoon *rgShape* ja *Caption* ominaisuus arvoon *Shape*.
13+- Muutetaan *RadioGroup2* ominaisuus *Name* arvoon *rgCount* ja *Caption* ominaisuus arvoon *Count*
14+- Lisätään radiopainikkeet *rgShape*:n:
15+ - komponenttimuokkaimessa valitaan *rgShape*:n ominaisuus *Items*
16+ - klikataan painiketta \[...\] niin *Merkkijonojen muokkain*-ikkuna avautuu
17+ - kirjoitetaan siinä kolmelle eri riville teksti*Lines*, *Rectangles* ja *Ellipses* jonka jälkeen lopuksi painetaan ''OK'- painiketta.
18+- Tehdään samalla tavalla radiopainikkeet *rgCount*:lle mutta kirjoitetaan sisällöksi luvut 1,5,10,20,50 ja 100 8Jokainen luku omalle riville).
19+- Asetetaan kummassakin (*rgShape* ja *rgCount*) ensimmäinen radiopainike kuin valituksi, asettamalla kummankin ItemIndex ominaisuus arvoon nolla (*0*).
20+- Luodaan *onClick*-tapahtumankäsittelijä *rgShape*:lle kaksoisklikkaamalla sitä lomakkeella.
21+- Laitetaan *rgCount* käyttämään tätä tapahtumankäsittelijää:
22+ - komponenttimuokkaimessa valitaan *rgCount*
23+ - valitaan välilehti *Tapahtumat*
24+ - Mennään *OnClick* tapahtumaan ja valitaan viereisestä yhdistelmäruudusta (TComboBox)*rgShapeClick*
25+- kun *rgShape* or *rgCount* klikataan niin lomaketta pitää päivittää, joten kirjoitetaan seuraava koodi in tapahtumakäsittelijään:
26+
27+``` pascal
28+procedure TForm1.rgShapeClick(Sender: TObject);
29+begin
30+ Repaint;
31+end;
32+```
33+
34+- whenever the form is redrawn, the shapes should be drawn:
35+ - in the Object Inspector select *Form1*
36+ - select the tab *Events*
37+ - click on the button \[...\] next to the event *OnPaint*
38+ - the handler is created, enter the following code:
39+
40+``` pascal
41+procedure TForm1.FormPaint(Sender: TObject);
42+var
43+ i: Integer;
44+begin
45+ if TryStrToInt(rgCount.Items[rgCount.ItemIndex], i) then
46+ for i:=1 to i do begin
47+ Canvas.Pen.Color:=Random($1000000);
48+ Canvas.Brush.Color:=Random($1000000);
49+ case rgShape.Items[rgShape.ItemIndex] of
50+ 'Lines': Canvas.Line(Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
51+ 'Rectangles': Canvas.Rectangle(Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
52+ 'Ellipses': Canvas.Ellipse(Random(ClientWidth), Random(ClientHeight), Random(ClientWidth), Random(ClientHeight));
53+ end;
54+ end;
55+end;
56+```
57+
58+- Aloita ohjelma, se voisi näyttää tältä:
59+
60+<figure>
61+<img src="ExampleTRadioGroup.png" title="ExampleTRadioGroup.png" />
62+<figcaption>ExampleTRadioGroup.png</figcaption>
63+</figure>
64+
65+## Katso myös
66+
67+- [[doc:lcl/extctrls/tradiogroup.html|TRadioGroup doc]]
68+- [[TRadioButton/fi|TRadioButton]]
69+- [[TGroupBox/fi|TGroupBox]]
70+
71+---
72+*From the Free Pascal wiki, page "TRadioGroup/fi", as it stood on 2019-11-21 after a change by Djzepi, 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