Delphi --- Aliohjelma
//Aliohjelma esimerkissä tehdään seuraava ohjelma:unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls, Buttons; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; BitBtn1: TBitBtn; Shape1: TShape; Edit3: TEdit; Label3: TLabel; Label4: TLabel; BitBtn2: TBitBtn; Bevel1: TBevel; procedure BitBtn1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Edit2KeyPress(Sender: TObject; var Key: Char); procedure BitBtn2Click(Sender: TObject); procedure Edit3KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; luku1,luku2,summa : Extended; //muuttujat yleisellä tasolla procedure laske; //aliohjelma esitellään implementation ///////////////////////aliohjelma laske alkaa procedure laske; begin summa := luku1+luku2; end; ///////////////////////aliohjelma laske loppuu {$R *.DFM} // Formin ominaisuudet: // BorderIcons... biMaximize...False = ei voi suurentaa napilla // BorderStyle... bsSingle = ei voi venyttää hiirellä // Position... poScreenCenter = lomake luodaan aina keskelle procedure TForm1.BitBtn1Click(Sender: TObject); begin luku1 := StrToFloat(Edit1.Text); //muuttujiin asetetaan arvot luku2 := StrToFloat(Edit2.Text); laske; //kutsutaan aliohjelmaa Edit3.Text := FloatToStr(summa); //Edit3:seen aliohjelman laskema arvo end; //kenttiin voi syöttää 0-9,peruutus,enter ja pilkku //Edit3:sen ReadOnly ominaisuus laitetaan Trueksi (tumpelosuoja) procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9',#8,#13,#44]) then Key := #0; //jos enteriä painetaan ja Edit1:sessä on jotain, vaihdetaan toiseen kenttään if (key = chr(13)) and (Edit1.Text <> '') then begin Edit2.SetFocus; end; end; procedure TForm1.Edit2KeyPress(Sender: TObject; var Key: Char); begin if not (key in ['0'..'9',#8,#13,#44]) then Key := #0; if key = chr(13) then //enterillä lasketaan vain jos molemmissa kentissä on jotain begin if (Edit1.Text <> '') and (Edit2.Text <> '') then begin BitBtn1.Click; //simuloi laske napin painallusta Edit3.SetFocus;//käytettävyyden takia focus Edit3:seen end; end; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin Edit1.Clear; //tyhjennetään kaikki kentät Edit2.Clear; Edit3.Clear; Edit1.SetFocus; //focus siirretään Edit1 kenttään end; //Ota huomioon koodin paikka (KeyDown) procedure TForm1.Edit3KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin //käytettävyyden takia otetaan delete-näppäin käyttöön if key = VK_DELETE then BitBtn2.Click; //simuloi tyhjennä-nappia end; end.