Microsoft Word umk d2 sirtqi docx




Download 1,55 Mb.
Pdf ko'rish
bet7/24
Sana10.06.2024
Hajmi1,55 Mb.
#262343
1   2   3   4   5   6   7   8   9   10   ...   24
Bog'liq
maruza3

Hodisalar
. Vizual komponentalar katta sondagi turli ko'rinishdagi 
hodisalarni yuzaga keltirish va qayta ishlashi imkoniyatiga ega. Eng umumiy 
hodisalar guruhlariga quyidagi kiritish mumkin: 
Boshqaruv elementini tanlash Sichqoncha ko'rsatgichini harakatlantirish 
(ko'chirish) Hodisalar Vizual kompanintalar katta sondagi turli ko'rinishdagi 


79 
hodisalarni yuzaga keltirishi va qayta ishlashi imkoniyatlariga ega. Eng umumiy 
hodisalar guruhlariga qo'yidagilar kiritish mumkun. 
Boshqaruv elementlarini tanlash 
Sichqoncha ko'rsatkichini harakatlantirish (ko'chirish) 
Klaviatura tugmasini bosish 
Boshqaruv elementi tomonidan qiymat kiritish fokusini olish va yo'qotish 
Ob'ektlarni drag - and - drop usulida ko'chirish 
Shuni eslatib o'tish kerakki hodisalar ham xossa hisoblanadi va u ma'lum 
tegishli bo'ladi. Aksaryat hodisalar xabar beruvchi xususiyatga ega va quo'yida 
e'loni ko'rsatilgan TNotifyEvef turiga tegishlidir: 
Type TNotifyEvef = procedure (Sender:Tobject) of object ; 
E'londan ko'rinib to'ribdiki, xabar beruvchi xodisa manbaini (Seuder 
parametiri ) ko'rsatadi va boshqa hech ma'lumotga ega emas . Boshqa xodisalar 
nisbatan murakkab va ular qo'yidagi paramitirlarini, masalan sichqpncha 
ko'rsatkichini ko'chirishini, uning koordinatalarini berishni talab qiladi. 
OnClick xodisasi (TNotifyEvef turida )boshqaruv elimentini tanlaganda ro'y 
beradi, uni yana bosish xodisasi deb ataladi. Odatda bu xodisa sichqoncha tugmasi 
bilan kompanentaga borganda ro'y beradi. Ilova yaratishda OnClick juda keng 
ishlatiladi. Misol uchun label1 yozuvini tanlagandagi hodisani ishlash. 
procedure TForma1->Label1Click(Sender: Tobject); 

Label1-> Caption = TimeToStr(Time); 

Sichqoncha bilan label1 yozuvida bosganda uning joriy vaqt akslanadi. 
OnClick xodisasi boshqa xollarda ham yuzaga kelishi mumken. Masalan 
Button kompanentasida kiritish fokus turgan holda
yoki  
tugmasi bosilsa CheckBox kompanentasi uchun
 tugmasi bosiladi. 
OnMouseDown hodisasi sichqoncha tugmasini bosganda ro'y beradi. 
OnMouseUp hodisasi sichqoncha tugmasi qo'yib yuborganda ro'y beradi. 
Sichqoncha tugmasi bosilganda qo'yidagi hodisalar ketma - ketligi ro'y beradi: 
OnMouseDown -> OnClick (chap tugma uchun) -> OnMouseUp 
Agar komponenta sohasiga sichqoncha tugmasini ikkilangan bosishi 
amalga oshirilsa, OnDblClick hodisasi ro'y beradi . Bu holdagi hodisalar ketma - 
ketligi qo'yidagicha bo'ladi : 
OnMouseDown -> OnClick -> OnMouseUp -> OnDblClick -> OnMouseDown 
->OnMouseUp 
C++ Builder yuqorida qayd qilingan holatlarda qo'lda yuzaga keltirishga 
imkon beradi. Masalan : Button2->Click operatori Button2 tugmasi bosilishini 
immitatsiya qiladi. 


80 
OnMouseMove 
hodisasi 
vizual 
komponenta 
ustida 
sichqoncha 
ko'rsatgichini harakat qilishi davomida uzluksiz ravishda yuzaga kelib turadi. Bu 
hodisaning turi quyidagicha : 
Type 
TMouseEvent=procedure(Sender:TObject; 
Shift 
:TShiftState; 
x,y:integer) of Object ; 
Bu yerda Sender - sichqoncha ko'rsatgichi qaysi boshqaruv elementi ustida 
ekanligi , X va Y sichqoncha ko'rsatgichining Sender boshqaruv elementi 
koordinata tizimidagi koordinatalarini ko'rsatadi. Shift parametri  ,  
va  tugmalarining holatini bildiradi. Bu parametr quyidagi qiymatlarning 
kombinatsiyasini olishi mumkin : 
SsShift -  tugmasi bosilgan 
SsAlt - < Alt > tugmasi bosilgan 
SsCtrl - < Ctrl > tugmasi bosilgan 
SsLeft - sichqonchaning chap tugmasi bosilgan 
SsMiddle - sichqonchaning o'rta tugmasi bosilgan 
SsDouble - ikkilangan bosish amalga oshirilgan 
Masalan, harakat davomida < Shift > va < Alt > tugmalari bosilgan bo'lsa 
Shift parametri [SsShift, SsAlt ] qiymati qabul qiladi. Hech qaysi tugma bosilmagan 
bo'lsa Shift parametri [ ] (bo'sh to'plam ) qiymatini qabul qiladi. 
Masalan. Sichqoncha ko'rsatgichining koordinatalarini chop qilish 
Procedure TForm1:FormMouseMove( ); 

Form1->Caption = “Sichqoncha ko'rsatgichi koordinatalari :” + IntToStr(x) 
+ “va ” + IntToStr(y) ) ; 

Sichqoncha 
ko'rsatgichini 
forma 
ichida 
xarakatlantirish 
uning 
koordinatalari forma sarloxasida ko'rsatib turiladi . 
OnKeyPress va OnKeyDown hodisalari klaviatura tugmasini bosganda 
yuzaga keladi. 
OnKeyUp hodisasi klaviatura tugmasini qo'yib yuborganda yuzaga keladi. 
Klaviatura tugmasini bosganda hodisalar quyidagi ketma - ketlikda ro'y beradi: 
OnKeyDown, OnKeyPress, OnKeyUp. 
Klaviaturani bosib turganda uzluksiz ravishda onKeyDown hodisasi , tugma 
quyib yuborilgandan keyin OnKeyUp hodisasi ro'y beradi. 
OnKeyPress hodisasi TKeyPressEvent turida bo'lib, u quyidagi e'longa ega: 
Type TKeyPressEvent = procedure (Sender : TObject ; char Key) of Object ; 
Bu yerda key parametri bosilgan tugmasi mos keluvchi belgining ASCII kodi. 


81 
OnKeyPress hodisasini qayta ishlashga misol 
Procedure TForm1->EditKeyPress( Sender : TObject ; char Key); 

if (key=='!') key=#0; 

Bu yerda Edit1 taxriridagi matnni qayta ishlashda foydalanuvchiga '!' 
belgisini ishlatishni man qiladi. 
OnKeyDown va OnKeyUp hodisalari ASCII - kodlarga ega bo'lmagan 
klaviatura boshqaruv tugmalarini qayta ishlash uchun aniqlangan. 
Bu hodisalar TKeyEvent turida: 
Type TKeyEvent=procedure(Sender : TObject ; word Key ; Shift:TShiftState) 
of Object ; 
Bu hodisalar , , va boshqa tugmalar holatini tahlil 
qilishda ishlatiladi . OnKeyPress hodisasidan farqli ravishda Key parametri Char 
turida emas , Balki word turida shu sababli tugmasa mos keluvchi tugmani 
aniqlash uchun Chr( ) funksiyasini ishlatish mumkin . 
Boshqaruv va alfavit-raqam tugmalari bosilgan holatini qayta ishlash. 
Procedure TForm1->Edit2KeyDown(Sender:TObject ; var Key:Word ; 
Shift:TShiftState); 

if (Shift==[SsCtrl]) &&(chr(Key)=='c') 
MessageDlg('''Ctrl-C'' tugmalari bosildi ' , mtconfirmation, 
[mbOk],0 ); 

Agar Edit2 komponentasi qiymat kiritish formulasida bo'lsa , < Ctrl> va  
tugmalari birgalikda bosilsa Confirm dialog darchasi ' Ctrl - C tugmalari bosildi ' 
xabari bilan ekranda paydo bo'ladi. 
Ayrim tugmalar o'ziga xosliklarga ega , masalan  tugmasi bosilganda 
OnKeyPress va OnKeyUp hodisalari yuz bermaydi. 
OnEnter hodisasi boshqaruv elementlari fokus olgansda yuz beradi( 
sichqoncha yoki  tugmasi yordamida) 
OnExit hodisasi darcha boshqaruv elementi fokusni yuqotganda yuz beradi. 
Nazariy savollar: 
Komponenta tushunchasi xaqida nimalarni bilasiz? 
Komponenta xususiyatlari bilan qanday ishlanadi? 
Standart komponentalari palitrasi haqida ma’lumot bering. 
Additional komponentalari palitrasi haqida ma’lumot bering. 
Win32 komponentalari palitrasi haqida ma’lumot bering. 


82 

Download 1,55 Mb.
1   2   3   4   5   6   7   8   9   10   ...   24




Download 1,55 Mb.
Pdf ko'rish