Wiki-kopiopeilipalvelin

Tämä on pascal.chatin wikin peilipalvelin. Muokkaus, historia ja kirjautuminen ovat siellä.

TRadioButton/fi

Deutsch · English · Français · Suomi · 日本語

TRadioButton 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 komponenttipaletin Standard välilehdeltä.

Jos halutaan käyttää TRadioButton:a lomakkeella , voidaan se valita komponenttipaletin Standard välilehdeltä ja asettaa se yhdellä klikkauksella lomakkeelle.

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ää).

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.

Yksinkertainen esimerkki

pascal
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;

->

Tapahtumien käyttö

Erona edelliseen esimerkkiin, nyt ei maalata lomaketta painiketta klikkaamalla, vaan jo pelkkä valintanapin klikkaaminen riittää.

Voit muokata edellistä esimerkkiä poistamalla painike ja sen onClick tapahtumakäsittely lähdekoodissa. Tai voidaan luoda uusi esimerkki joka myös helppo tehdä:

pascal
procedure TForm1.rbRedChange(Sender: TObject);
begin
  Self.Color:=clRed;    // "Self",  valitsee objektin jossa menetelmä on (metodi: rbRedChange / olio: Form1)
end;

procedure TForm1.rbGreenChange(Sender: TObject);
begin
  Form1.Color:=clLime;  //Voit suoraan valita objektin ''Form1 '', mutta se on huono
                        //koska silloin mitään muuta kuin  ''TForm1'' ei voida käyttää 
end;

procedure TForm1.rbBlueChange(Sender: TObject);
begin
  Color:=clBlue;        //Tai jätetään pois "Self" ja kääntäjä automaattisesti tunnistaa olion
end;

->

Ryhmittäminen

Jos lisäät valintanapin (TRadioButton) lomakkeelle niin sen vanhempi (parent) (kontrolli, joka sisltää valintanapin) on kyseinen lomake.

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.

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).

Seuraava esimerkki osoittaa, kuinka voidaan tehdä ryhmä valintanapeista:

Voit muuttaa esimerkiksi aikaisemmin esitettyä ohjelmaa Yksinkertainen esimerkki tai luoda täysin uusi sovellus:

pascal
procedure TForm1.btnPaintClick(Sender: TObject);
begin
  if rbRed.Checked   then Color:=Brightness or clRed;
  if rbGreen.Checked then Color:=Brightness or clLime;
  if rbBlue.Checked  then Color:=Brightness or clBlue;  
end;
pascal
function TForm1.Brightness: TColor;
begin
  Result:=0;
  if rbBrightMedDark.Checked then Result:=$888888;
  if rbBrightBright.Checked  then Result:=$DDDDDD;
end;

->

Katso myös


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.

Versio 1, viimeksi muokannut WikiArchive .