Sign in Join
Wiki copytemporary

TRadioButton/fi: what changed

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

Title: TRadioButton/fi

OldNewLine
1+**TRadioButton** ![](/wiki-images/7/7a/Tradiobutton.png) on komponentti, valinnan näyttävä painike, joka toimii niin että se poissulkee muut valintanapit - jos yksi painike on valittuna, mikään muu ryhmän napeista ei ole valittu. TRadioButtons ovat valittavissa [[Component Palette|komponenttipaletin]] [[Standard tab|Standard välilehdeltä]].
2+
3+Jos halutaan käyttää TRadioButton:a [[TForm|lomakkeella]] , voidaan se valita komponenttipaletin Standard välilehdeltä ja asettaa se yhdellä klikkauksella lomakkeelle.
4+
5+Yleensä ei ole järkevää käyttää vain yhtä valintanappia, koska niillä pyritään valitsemaan jokin vaihtoehto. Yksittäisten valitanappien sijaan voidaan käyttää myös [[TRadioGroup]] (eli valintanappiryhmää).
6+
7+Lähdekoodissa on mahdollista saada tietää valintanapin tila. Onko se käytössä vai ei, kyselyllä **`Status := <RadioButton>.Checked;`**. Tätä *Checked* arvoa voidaan käyttää kuten tavallista [[Boolean]] muuttujaa. Siten myös sijoitus **`<RadioButton>.Checked := True;`** on mahdollista.
8+
9+### Yksinkertainen esimerkki
10+
11+- Luo uusi sovellus ja vie kolme TRadioButton-kompoenttia lomakkeelle.
12+- Komponenttimuokkaimessa ominaisuusuudet-välilehdellä muuta nimet *RadioButton1...3* arvoon *rbRed*, *rbGreen* ja *rbBlue*.
13+- Vastaavasti, muuta niiden caption ominaisuus arvoihin *Red*, *Green* ja *Blue*.
14+- Lisää lomakkeelle [[TButton/fi|painike (TButton)]] ja muuta caption arvoon *Draw new* ja nimeä (name) se *btnPaint*.
15+- Luo *onclick* tapahtumankäsittelijä painikkeelle (TButton) menemällä komponenttimuokkaimen tapahtumat välilehdelle, valitaan *onClick* tapahtuma ja painetaan painiketta \[...\] tai tuplaklikkaa painiketta lomakkeella.
16+- Täydennä lähdekoodi seuraavanlaiseksi:
17+
18+``` pascal
19+procedure TForm1.btnPaintClick(Sender: TObject);
20+begin
21+ if rbRed.Checked then Color:=clRed;
22+ if rbGreen.Checked then Color:=clLime;
23+ if rbBlue.Checked then Color:=clBlue;
24+end;
25+```
26+
27+- Suorita sovellus, sen pitäisi joltain tämäntapaiselta näyttää:
28+
29+![](/wiki-images/9/92/RadioButtonExample1.png) -\> ![](/wiki-images/1/12/RadioButtonExample2.png)
30+
31+### Tapahtumien käyttö
32+
33+Erona edelliseen esimerkkiin, nyt ei maalata lomaketta painiketta klikkaamalla, vaan jo pelkkä valintanapin klikkaaminen riittää.
34+
35+Voit muokata edellistä esimerkkiä poistamalla painike ja sen *onClick* tapahtumakäsittely lähdekoodissa. Tai voidaan luoda uusi esimerkki joka myös helppo tehdä:
36+
37+- Luo uusi sovellus ja vie kolme TRadioButton-kompoenttia lomakkeelle.
38+- Komponenttimuokkaimessa ominaisuusuudet-välilehdellä muuta nimet *RadioButton1...3* arvoon *rbRed*, *rbGreen* ja *rbBlue*.
39+- Vastaavasti, muuta niiden caption ominaisuus arvoihin *Red*, *Green* ja *Blue*.
40+- Nyt luodaan *OnChange* tapahtumankäsittelijä valintanapeille (TRadioButton) menemällä komponenttimuokkaimen tapahtumat välilehdelle, valitaan *Onchange* tapahtuma ja painetaan painiketta \[...\] tai tuplaklikkaa valintanappia lomakkeella. Tämä tehdään jokaiselle valintanapille.
41+- Laitetaan valintanappien *OnChange* tapahtumakäsittelijät vaihtamaan lomakkeen väriä kun klikataan valinnappia.
42+
43+``` pascal
44+procedure TForm1.rbRedChange(Sender: TObject);
45+begin
46+ Self.Color:=clRed; // "Self", valitsee objektin jossa menetelmä on (metodi: rbRedChange / olio: Form1)
47+end;
48+
49+procedure TForm1.rbGreenChange(Sender: TObject);
50+begin
51+ Form1.Color:=clLime; //Voit suoraan valita objektin ''Form1 '', mutta se on huono
52+ //koska silloin mitään muuta kuin ''TForm1'' ei voida käyttää
53+end;
54+
55+procedure TForm1.rbBlueChange(Sender: TObject);
56+begin
57+ Color:=clBlue; //Tai jätetään pois "Self" ja kääntäjä automaattisesti tunnistaa olion
58+end;
59+```
60+
61+- Suorita sovellus, sen pitäisi joltain tämäntapaiselta näyttää:
62+
63+![](/wiki-images/b/bd/RadioButtonExample3.png) -\> ![](/wiki-images/7/7c/RadioButtonExample4.png)
64+
65+### Ryhmittäminen
66+
67+Jos lisäät valintanapin (TRadioButton) lomakkeelle niin sen [[Parent|vanhempi (parent)]] (kontrolli, joka sisltää valintanapin) on kyseinen lomake.
68+
69+Jokainen asettaminen (tulipa se koodin kautta tai ohjelman käyttäjältä napin painalluksella) **`<RadioButton>.Checked:=True;`** tarkistetaan, onko toinen tämän vanhemman valintanappi valittu (arvossa *[[True]]*) ja jos on niin se muutettaisiin arvoon *[[False]]*.
70+
71+Jos halutaan käyttää useita valitanappeja lomakkeella, joka on suunniteltu tarjoamaan erilaisia, itsenäisiä valintoja, niin ne on ryhmiteltävä. Tähän tarkoitukseen tarjolla on valmis komponentti [[TRadioGroup]] tai sitten tehtävä *ryhmän ohjauskomponenteilla* (esim. [[TPanel]], [[TGroupBox]], [[TNotebook]], [[TPageControl]] jne).
72+
73+Seuraava esimerkki osoittaa, kuinka voidaan tehdä ryhmä valintanapeista:
74+
75+Voit muuttaa esimerkiksi aikaisemmin esitettyä ohjelmaa [[TRadioButton/fi|Yksinkertainen esimerkki]] tai luoda täysin uusi sovellus:
76+
77+- Ensimmäisenä pitäisi sijoittaa [[TGroupBox]]-komponentti komponenttipaletin Standard-välilehdeltä lomakkeelle.
78+- Vaihdetaan sen nimeksi *gbColor* (kirjoita tämä name ominaisuuteen) ja sen caption ominaisuuteen kirjoitetaan *Color*.
79+- Sitten tehdään GruopBox:n alaluokka valintanapeille *rbRed*, *rbGreen* ja *rbBlue*:
80+ - Muokatussa projektissa siirretään komponenttimuokkaimessa vedä ja pudota menetelmällä valintanapit *gbColor*-ryhmään.
81+ - Uudessa projektissa, voit asettaa kolme valintapainiketta yksi toisensa jälkeen, napsauttamalla lisätä GroupBox:n, muuta sitten nimiä (name) *rbRed*, *rbGreen* ja *rbBlue*. Caption ominaisuuteen vastaavasti *Red*, *Green* and *Blue*
82+- Seuraavaksi laitetaan toinen TGroupBox lomakkeelle. Nimetään se *gbBrightness*:ksi ja kirjoitetaan caption-ominaisuuteen teksti: *Brightness*.
83+- Lisää tähän GroupBox:n myös kolme valintapainikkeita ja nimeä ne *rbBrightDark*, *rbBrightMedDark* ja *rbBrightBright* ja kirjoitetaan vastaavaan caption-ominaisuuteen teksti: *Dark*, *MediumDark* tai *Bright*.
84+
85+- Jos on luotu uusi sovellus, niin lomakkeelle täytyy lisätä painike (TButton) nimellä *btnPaint* ja sen caption ominaisuuteen kirjoitetaan *Draw new*.
86+- Painikkeen *btnPaint* *OnClick* tapahtumankäsittelijän koodi koodataan seuraavanlaiseksi:
87+
88+``` pascal
89+procedure TForm1.btnPaintClick(Sender: TObject);
90+begin
91+ if rbRed.Checked then Color:=Brightness or clRed;
92+ if rbGreen.Checked then Color:=Brightness or clLime;
93+ if rbBlue.Checked then Color:=Brightness or clBlue;
94+end;
95+```
96+
97+- Seuraavaksi koodataan funktio Brightness luokan TForm1 *private* osaan kirjoittamalla siihen teksti **`function Brightness: TColor;`** ja painamalla näppäimillä \[CTRL\] + \[Shift\] + \[C\] (koodin täydentäminen) jolloin funktion kehys tulee luotua. Täydennä se seuraavanlaiseksi:
98+
99+``` pascal
100+function TForm1.Brightness: TColor;
101+begin
102+ Result:=0;
103+ if rbBrightMedDark.Checked then Result:=$888888;
104+ if rbBrightBright.Checked then Result:=$DDDDDD;
105+end;
106+```
107+
108+- Suorita sovellus, sen pitäisi joltain tämäntapaiselta näyttää:
109+
110+![](/wiki-images/b/bf/RadioButtonExample5.png) -\> ![](/wiki-images/8/87/RadioButtonExample6.png)
111+
112+## Katso myös
113+
114+- [[doc:lcl/stdctrls/tradiobutton.html|TRadioButton dokumentaatio]]
115+- [[TRadioGroup]]
116+- [[TToggleBox]]
117+- [[TCheckBox/fi|TCheckBox]] eli valintaruutu.
118+
119+---
120+*From the Free Pascal wiki, page "TRadioButton/fi", 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