Button boshqarish obyektlari Caption xususiyatlarini kerakli yozuvlarga almashtiramiz. Bu amallarni Form1 obyektining yuklanish hodisasi uchun dastur kodi sifatida yozish ham mumkin. Buning uchun Button1.Caption:=’1’; Button1.Caption:=’2’ kabi yozuvlarni kiritib chiqish kerak bo’ladi. Kalkulyatorning hisob-kitob ishlarini aks ettirish uchun mo’ljallangan oynachasi Edit1 uchun ham bazi o’zgartirishlarni amalga oshiramiz. Ya’ni avval undagi Edit1 yozuvini olib tashlaymiz. Buning uchun Edit1 obyekti xususiyatlari ichidan Text xususiyati qiymati (Edit1)ni o’chirib tashlaymiz. Edit1 obyekti o’lchami biz istagan holatda qolishini ta’minlash uchun AutoSize xususiyati qiymatini False ga almashtiramiz. (Yozuv yo’nalishini ham o’ng tomondan to’ldirib kelish uchun).
Shu amallarni bajargach Kalkulyator dasturi interfeysi tayyor bo’ldi deb hisoblash mumkin, lekin uni yana ham ko’rkamroq qilish uchun (zamonaviy uslub berish uchun) Delphi 7 ni yana bir imkoniyati XPManifest dan foydalanamiz. XPManifest obyekti Delphi obyektlari to’plamining Win32 bo’limida joylashtirilgan. Uni sichqoncha bilan tanlab loyiha oynasining istalgan joyiga o’rnatamiz. Bunday deyilishiga sabab ilova dastur ishga tushirilganda XPManifest ko’rinmas holatga o’tadi. (Eslatma zamonaviy uslub faqat ilova dastur ishlaganda ko’rinadi!)
4-rasm
Dastur asosini yaratish.
Dastur interfeysi bilan bog’liq kerakli amallar deyarli bajarib bo’lindi. Endi undagi tugmachalar o’z vazifasini bajarishi uchun, ya’ni kalkukyator ishlashi uchun tugmachalarni click hodisasi uchun kod matnlarini yozamiz.
Dastlab 1, 2, 3,.., 9 tugmachalr uchun quyidagilarni kiritamiz:
procedure TForm1.Button4Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'1'
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'2'
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'3'
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'4'
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'5'
end;
procedure TForm1.Button11Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'6'
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'7'
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'8'
end;
procedure TForm1.Button16Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'9'
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit1.Text :=edit1.Text+'0'
end;
Yuqoridagilarni yozib bo’lgach, arifmetik amallar bajarish uchun mo’ljallangan tugmalar uchun kod matnlarini kiritamiz. Bu yerda e’tiborga loyiq bir muammo bor. Arifmetik amal tugmalari bosilganida kalkulyatorning sonlarni kiritish uchun mo’ljallangan maydoni keyingi qiymatni kiritish uchun tozalanishi kerak. Demak avvali kiriritlgan qiymat qayerdadir saqlanib turishi kerak. Buning uchun dastur boshida Turbo Paskal dagi kabi ‘vXotira’ va ‘bAmal' nomli o’zgaruvchi e’lon qilib olamiz. Arifmetik amal tugmalaridan biri bosilganda sonlar kiritish maydoni (Edit1)dagi qiymat StrToInt funksiyasi yordamida satrli ko’rinishdan sonli qiymatga aylantirilib vXotira o’zlashtiriladi. Chunki Edit1 obyekti faqat satrli ma’lumotlarni qaytaradi. Qanday amal bajarilganligini aniqlashtirish uchun esa bAmalo’zgaruvchisigadasturda belgilangan amal tartibi o’zlashtiriladi.