Informatika va axborot


Download 4.2 Mb.
Pdf ko'rish
bet88/93
Sana12.08.2023
Hajmi4.2 Mb.
#1666566
1   ...   85   86   87   88   89   90   91   92   93
Bog'liq
10-sinf-informatika

2. Koptok ilovasi. 
Timer
obyektidan birinchi navbatda animatsion
harakat yaratish uchun foydalaniladi. Bu qanday amalga oshirilishini 
ko‘rish uchun yangi ilova yaratamiz. Unga yetarlicha katta 
Image
obyektini, bittadan 
Timer

CheckBox
va 
SpinEdit 
larni joylaymiz.
Ilova oynasining 
Image
egallagan qismida koptok harakatlansin. 
Koptok devorga urilganda orqasiga qaytsin. Uning harakati tezligini 
SpinEdit
dagi qiymat belgilab bersin va u o‘zgarishi bilan koptok tezligi 
ham o‘zgarsin. 
CheckBox
da bayroqcha o‘rnatilgan bo‘lsa, koptokning 
harakatlangandagi izi ham ko‘rinib tursin, aks holda faqat koptokning joriy 
holati ekranga chiqarilsin. Koptokning holati sekundiga 20 marta (50 
millisekund interval bilan) yangilab turilsin. 
CheckBox
ning sarlavhasini 
izi bilan
deb o‘zgartiramiz, 
Checked
xossasini rost qilib o‘rnatamiz. 
SpinEdit
ning maksimal qiymatini 10 ga 
teng qilib olamiz.
Timer
ning 
Interval
xossasini 50 ga tenglaymiz. 
Ilovada koptokning joriy holatini saqlash uchun ikkita: x, y; koptok 
harakatining joriy yo‘nalishini saqlash uchun yana ikkita: dx, dy 
o‘zgaruvchilar kerak bo‘ladi. Ularni tavsiflovchi operator 
var 
x,y,dx,dy:integer;
operatorini dastur kodi oynasida 
var Form1: TForm1;
dan 
keyinga joylaymiz. Bu o‘zgaruvchilarga boshlang‘ich qiymatlar berish 
uchun 
Form1
ning boshqa obyektlardan bo‘sh qismini ikki marta bosamiz. 
Dastur oynasida paydo bo‘lgan 
TForm1.FormCreate
protsedurasiga 
x:=0;y:=0;dx:=2;dy:=1;
operatorlarini kiritamiz.
Timer
obyektini ikki marta bosib uning protsedurasini quyidagicha 
to‘ldiramiz:
procedure TForm1.Timer1Timer(Sender: TObject); 


151 
var n:integer; 
begin 
n:=SpinEdit1.Value; 
if not CheckBox1.Checked then 
Image1.Canvas.Rectangle(-3,-
3,Image1.Width+3,Image1.Height+3); x:=x+dx*n; 
if x>Image1.Width then
begin x:=2*Image1.Width-x; dx:=-dx;end; 
if x<0 then begin x:=-x; dx:=-dx;end;
y:=y+dy*n; 
if y>Image1.Height then
begin y:=2*Image1.Height-y; dy:=-dy;end; 
if y<0 then begin y:=-y; dy:=-dy;end; 
Image1.Canvas.Ellipse(x-10,y-10,x+10,y+10);
end;
Ikkinchi satrda protsedurada foydalanish uchun yangi n nomli 
o‘zgaruvchi tavsiflanadi. To‘rtinchi satrda bu o‘zgaruvchiga 
SpinEdit1
da 
berilgan harakat tezligi qiymati kiritiladi.
Beshinchi satrda 
CheckBox1
da bayroqcha o‘rnatilganligi tekshiriladi. 
Agar bu bayroqcha o‘rnatilmagan bo‘lsa, oltinchi satrda koptokning oldingi 
holati butun rasmni o‘chirib tashlash bilan yo‘qotiladi:
Yettinchi satrda koptokning yangi holatining koordinatasi topiladi. 
Sakkizinchi satrda bu yangi holatning rasmning o‘ng chegarasidan o‘tib 
ketishi tekshiriladi. Agar o‘tib ketsa, ning yangi qiymati hisoblab topiladi 
va gorizontal harakat yo‘nalishi 
teskarisiga o‘zgartiriladi. To‘qqizinchi 


152 
satrda koptokning yangi holati rasmning chap chegarasidan o‘tib ketishi 
tekshiriladi va bu holat yuz bergan bo‘lsa, uning koordinatasi qayta 
hisoblanib, harakat yo‘nalishi teskarisiga o‘zgartiladi. 
O‘ninchi satrdan o‘n ikkinchi satrgacha koptokning koordinatasi shu 
tarzda qayta hisoblanadi. Nihoyat o‘n uchinchi satrda koptokning yangi 
holati ekranda chiziladi.
Ilovani ishga tushirib, uning ishlashini kuzatamiz. 

Download 4.2 Mb.

Do'stlaringiz bilan baham:
1   ...   85   86   87   88   89   90   91   92   93




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling