TButton/fi
│
Deutsch (de) │
English (en) │
español (es) │
suomi (fi) │
français (fr) │
日本語 (ja) │
русский (ru) │
TButton on komponentti, joka tarjoaa painonapin perustoiminnot. Se löytyy komponenttipaletin Standard-välilehdeltä.
TButton on yksi useimmin käytetyistä komponenteista lomakkeella. Klikkaamalla hiirellä sitä ( tai siirrytään sille <tab>-näppäimellä ja painetaan <enter>-näppäintä) niin tapahtuma syntyy. Tämä klikkaus kutsuu tapahtumaa. Tähän tarvitaan tapahtumakäsittelijää johon kutsun jälkeen hypätään.
Lisätään painike lomakkeelle, klikkaamalla TButton-komponenttia (painikkeen kuvake on se jossa on "OK" teksti keskellä) komponenttipaletin Standard-välilehdellä ja asettamalla se klikkauksella lomakkeelle.
Tapahtumakäsittelijä saadaan hiiren napsautuksella voidaan melko helposti, Tuplaklikkaa Button:a(tai komponenttimuokkaimessa valitaan Button:n onclick tapahtuma). Button1 tapahtuma lomakkeella Form1 näyttää tältä:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Begin ja end lauseiden välille kirjoitetaan koodi, jota kutsutaan, kun Button1:stä klikataan.
Yleensä aloittelijoiden oppaat käyttävät TButton:a helppona tulona olio-ohjelmointiin Lazaruksella. Seuraavat oppaat sopivat hyvin aloittelijoille ymmärtääkseen painikkeiden käytön:
- Ensimmäinen graafinen sovellus täydellisille aloittajille
- Ensimmäinen Lazarus ohjelmasi Lazarus opastus
- Ohjelmointi esimerkki olio-ohjelmoinnista Free Pascal:lla ja Lazaruksella
Yksinkertainen esimerkki
- Luo uusi sovellus, vedä ja pudota TButton lomakkeelle.
- Tuplaklikkaa tätä Button1-painiketta lomakkeella (luodaan Button1 oletuskäsittelijä: onClick, lähdekoodieditori avautuu).
- Lisää seuraava koodi tapahtumakäsittelijään (lisää puuttuva rivi):
procedure TForm1.Button1Click(Sender: TObject);
begin
ShowMessage('Lazarus makes my day'); //Viesti-dialogi (message) näyttää sisällön
end;
- Käynnistä ohjelma (esim. funktionäppäimellä F9).
Hiiren oikea painike
Jokaisella painikkeella (kuten monella muullakin komponentilla) on (valinnainen) PopupMenu ominaisuus (ponnahdusvalikko), joka aktivoi siihen liitetyn TPopupMenu:n kun hiiren oikeata painiketta klikataan.
Dynaamisesti luotu painike
Joskus suunnitteluaikaisen luomisen sijasta painikkeita (tai muita komponentteja), on helpompaa luoda niitä dynaamisesti suorituksen aikana. Tämä lähestymistapa on hyödyllinen varsinkin jos täytyy tehdä toistuvia painikkeita lomakkeelle.
Tämä voidaan saavuttaa kuten seuraavassa esimerkissä (nopeasti tehty laskin):
- Luo uusi tyhjä graafinen sovellus lomakkeelle Form1 ja lisää StdCtrls uses lauseeseen (koska siellä on TButton määritelty).
- vaihda caption Form1 --> QuickAdd.
- Luo OnCreate tapahtumankäsittelijä Form1:lle (Siirry komponenttimuokkaimessa tapahtumaan OnCreate ja klikkaa painonappia [...]).
- Täydennä koodi seuraavanlaiseksi:
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
aButton: TButton;
begin
for i:=0 to 9 do begin //Luodaan 10 painiketta
aButton:=TButton.Create(Self); //Luodaan TButton painike, Owner on Form1, mihin se laitetaan
aButton.Parent:=Self; //Määrittää missä se näytetään
aButton.Width:=aButton.Height; //Leveys olisi sama kuin korkeus
aButton.Left:=i*aButton.Width; //Vasemman reunan etäisyys
aButton.Caption:=IntToStr(i); //Painikkeessa näytettävä teksti (numero 0..9)
aButton.OnClick:=@aButtonClick; //Painikkeen tapahtumakäsittelijä (luodaan myöhemmin)
end;
Self.Height:=aButton.Height; //Lomakkeen korkeus on sama kuin painikkeen korkeus
Self.Width:=aButton.Width*10; //Lomakkeen leveys olisi sama kuin painkkeiden leveys
end;
- Nyt täytyy luoda tapahtuman käsittelijä painikkeen klikkaukseen.
- Lähdekoodieditorissa, siirry luokan TForm1 osioon
private
. - Lisää
procedure aButtonClick(Sender: TObject);
ja paina näppäimiä <CTRL> + <Shift> + <c> (Koodin täydentäjä tulee aktiiviseksi ja luo aliohjelmanTForm1.aButtonClick(Sender: TObject);
. - Täydennä lähdekoodi seuraavaksi:
procedure TForm1.aButtonClick(Sender: TObject);
const
Cnt: Integer = 0;
var
i: Integer;
begin
if (Sender is TButton) and // Tarkistetaan että kutsuja oli painike
TryStrToInt(TButton(Sender).Caption, i) // yritetään muuntaa painikkeen teksti kokonaisluvuksi
then begin
Cnt:=Cnt + i; // Lisätään laskuria painikkeessa olevalla luvulla
Caption:='QuickAdd: '+IntToStr(Cnt); // Kirjoitetaan laskurin tulos lomakkeen yläpalkkiin
end;
end;
- Käynnistä sovellus.
Huomaa: Painikkeiden tapahtumankäsittelijäksi voidaan liittää mikä tahansa lomakkeella oleva procedure <class>.<name of procedure>(Sender: TObject);
.
Katso myös