Sign in Join
Wiki copytemporary

TButton/fi

Deutsch · English · Español · Français · Suomi · Русский · 日本語

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ä:

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

Yksinkertainen esimerkki

pascal
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage('Lazarus makes my day');  //Viesti-dialogi (message) näyttää sisällön
end;

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

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

Note: Painikkeiden tapahtumankäsittelijäksi voidaan liittää mikä tahansa lomakkeella oleva procedure <class>.<name of procedure>(Sender: TObject);.

Siten voidaan käyttää yhtä ja samaa aliohjelmaa muissakin luokissa!

Katso myös


From the Free Pascal wiki, page "TButton/fi", as it stood on 2020-02-29 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.

Revision 2, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.