Dastur interfeysini yaratish.

Delphi 7 dasturlash muhitida ilova dastur yaratishdan avval uning interfeysini tassavur qilib olamiz. Hozirgi misol uchun bu muhim emas, sababi kalkulyator interfeysini windowsning standart dasturi hisoblangan kalkulyatorga o’xshatib olamiz. Buning uchun ilova oynasini kerakli o’lchamga keltirib olamiz.

Bu ishni Obyekt inspektori orqali amalga oshirish mumkin. Obyekt inspektorida odatda tanlangan obyektning xususiyatlari tanlanadi (o’zgartiriladi). Form1 xususiyatlari ichidan Height (oyna bo’yi)ni 325 ga o’zgartiramiz, Width (oyan eni)ni 227 ga o’zgartiramiz natijada quyidagi 1-rasmdagi ko’rinishga erishamiz. Bu o’lchamlarni visual holatda sichqoncha yordamida ham amalga oshirish mumkin. Buning uchun sichqonchani ilova oynasi chetki qismiga olib kelamiz, sichqoncha ko’rsatgichi ↔ ko’rinishga o’zgaradi. Shu holda sichqoncha chap tugmasini bosib kerakli tomonga siljitamiz.

Kalkulyator uchun oyna o’lchamlarini belgilab oldik. Endi navbatdagi amallardan biri dastur sarlavha satrini sozlaymiz. Buning uchun Obyektlar inspektoridan Form1 ning Caption xususiyatini Form1 dan “Kalkulyator” so’ziga almashtiramiz. Bu ishni formani yuklanish hodisasi bilan ham amalga oshirish mumkin, buning uchun ilova oynasi Form1 ustida sichqoncha chap tugmasini ikki marta bosilsa dastur kodi oynasi ochiladi. Shu oynaga Form1.Caption:=’Kalkulyator’; iborasini yozamiz.

         Endigi navbat barcha dasturlarda bo’lgani kabi uning yorlig’ini o’rnatamiz. Yorliq ico formatidagi kichik rasmcha bo’lib dasturni tanib olish uchun foydalaniladi. Standart holatda Delphi ilovalar uchun  yorliqni taklif etadi. Uni o’zgartirish uchun yana Form1 xususiyatlaridan icon xususiyatini tanlaymiz natijada ico faylini yuklash oynachasi ochiladi va undan kerakli yorliqni tanlab Ok tugmasini bosib chiqib ketamiz (2-rasm).

         Dastur sarlavhalar satri o’ng tomonida oynani boshqarish tugmalari mavjud bo’lib ulardan ‘Kalkulyator’ dasturi uchun oyna o’lchamini tanlash tugmasi shart emas. Shuning uchun yana Form1 xususiyatlariga murojaat qilamiz. Ular ichidan BorderIcons bo’limi ichidan biMaximize xususiyatini False ga, BorderStyle xususiyatini esa bsSingle ga o’zgartiramiz.

Kalkulyator dastruri oynasi tayyor bo’lsi. Endi unga boshqarish tugmalari (Button) va raqamlarni ko’rsatib turishi uchun yozuv oynachasi (Edit) obyektlaarini o’rnatib chiqamiz. Shunda ilova oynasi ko’rinishi 3-rasmdagi ko’rinishga keladi.

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

Dastur asosini yaratish.

         Dastur interfeysi bilan bog’liq kerakli amallar deyarli bajarib bo’lindi. Endi undagi tugmachalr 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 keying qiymatni kiritish uchun tozalanishi kerak. Demak avvali kiriritlgan qiymat qayerdadir saqlanib turishi kerak. Buning uchun dastur boshida Turbo Paskal dagi kabi ‘vXotira’ va ‘bAma’l 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 bAmal o’zgaruvchisigadasturda belgilangan amal tartibi o’zlashtiriladi. Tugmalarning bosilish hodisasi uchun yozilgan kod satridan faqat qzil rangli qismini ko’chiring, qolgan qismini Delphi o’zi yozadi!

Qo’shish amali uchun:

procedure TForm1.Button3Click(Sender: TObject);

begin

vXotira:=strToInt(edit1.Text);

bAmal:=1;

edit1.Text:=”;

end;

Ayrish amali ucun:

procedure TForm1.Button7Click(Sender: TObject);

begin

vXotira:=strToInt(edit1.Text);

bAmal:=2;

edit1.Text:=”;

end;

Ko’paytirish amali uchun:

procedure TForm1.Button12Click(Sender: TObject);

begin

vXotira:=strToInt(edit1.Text);

bAmal:=3;

edit1.Text:=”;

end;

Bo’lish amali uchun:

procedure TForm1.Button17Click(Sender: TObject);

begin

vXotira:=strToInt(edit1.Text);

bAmal:=4;

edit1.Text:=”;

end;

         Amallarni bajarishni boshqarish uchun tashkil etilgan dastur kodlari kiritilgach, keyingi qadam arifmetik amallarni bajarilishini tashkil etishdir.

Buning uchun ‘=’  tugamasi quyidagi ma’lumotlar kiritiladi:

procedure TForm1.Button8Click(Sender: TObject);

begin

if bamal=1 then

edit1.Text :=IntToStr(vXotira + StrToInt(edit1.Text ));

if bamal=2 then

edit1.Text :=IntToStr(vXotira – StrToInt(edit1.Text ));

if bamal=3 then

edit1.Text :=IntToStr(vXotira * StrToInt(edit1.Text ));

if bamal=4 then

edit1.Text :=FloatToStr(vXotira / StrToFloat(edit1.Text ));

end;

  Ushbu qo’llanmani o’rganib chiqqan bo’lsangiz, o’ylaymanki yuqorida keltirilgan ma’lumotlarga asosan rasmda ko’rsatilgan qolgan tugmachalar uchun ham kerkli buyruq va ko’rsatmalarni kiritib dasturni yakunlay olasiz!  

Muallif F. Mansurov

Fikr bildirish

Email manzilingiz chop etilmaydi. Majburiy bandlar * bilan belgilangan