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.