Паролингизни унутдингизми?
Login
Left, Right, Center Left, Center, Right Center, Left, Right



Visual komponentalardan foydalanish

VIZUAL KOMPONENTALARDAN FOYDALANISH

Ilovalar interfeysini yaratish uchun Delphi vizual komponentalarining ulkan (keng) to'plamini taqdim qiladi.Ularning asosiylari komponentalar palitrasining Standart, Additional va Win32 varaqlarida joylashgan. Biz ushbu componentalardan foydalanishni turli dasturlash muhitlarida kurishimiz mumkin,


Standart varaqda interfeys komponentalarining aksariyati Windows boshlang'ich versiyalirida ishlatilgan interfeys komponentalaridan iborat:

 

Frames - Freymlar
MainMenu - Asosiy Menu
PopurMenu - Paydo bo'luvchi menu
Label - Yozuv
Edit - Bir satrli taxrir
Memo - Ko'pqatorli taxrir
Button - Standart tugma
CheckBox - Bog'liqmas (pereklyuchatel)
RadioButton - (pereklyuchatel)
ListBox - Ro'yxat
ComboBox - Ro'yxatli Maydon
ScrollBar - Harakatlantirish yulagi
GroupBox - Guruh
RadioGroup - O'zaro bog'liq (pereklyuchateli) guruhi
Panel - Panel
ActionList - Amallar ro'yhati

Standart Varog'i

Rasmdagi komponentalar , ular sanab utilishiga mos keladi.Birinchi piktogramma komponenta hisoblanmaydi va u varoqda tanlangan komponentadan voz kechish uchun xizmat qiladi.
Additional varog'ida komponentalar quyidagicha joylashgan:

BitBtn - Rasmli tugma
SpeedButton - Tezkor murojaat tugmasi
MaskEdit - Qolip buyicha berilganlar kiritiluvchi bir qatorli taxrir
StringGrid - Satrlar jadvali
DrawGrid - Jadval
Image - Grafik shakl
Shape - Geometrik figura
Bevel - Faska
ScrollBox - Harakatlantirishlar soxasi
CheckListBox - Pereklyuchatellar ro'yhati
Splitter - Ajratuvchi
Statictext - Statik (turg'un) matn
ControlBar - Vositalar (instrumentlar) paneli uchun konteyner
ApplicationEvents - Ilovaning hodisalari
Chart - Diagramma

Additional varog'i

Win32 varog'ida 32 razryadli Windows interfeysiga ta'luqli komponentalar joylashgan :

TabControl - Zakladka
PageConteol - Bloknot
ImageList - Grafik shakllar ro'yhati
RichEdit - To'liq imkoniyatli matn rejimi
TrackBar - Yugurdak (Begunok)
ProgressBar - Ish bajarish indikatori
UpDown - Xisoblagich
HotKey - Qaynoq tugmalarkombinatsiyalri tahriri
Animate - Videokliplarni tomosha qilish
DateTimePicker - Sanani kiritish satri
MonthCalendar - Kalendar
TreeView - Obektlar daraxti
ListView - Ro'yhat
HeaderControl - Ajratuvchi
StatusBar - Holat satri
ToolBar - Instrumentlar (asboblar) paneli
CoolBar - '' Epchil " instrumentlar paneli
PageScroller - Tasvirda harakatlanish

 

Win32 varog'i

Vizual komponentalarning umumiy xususiyatlari

Barcha vizual komponentalar uchun TControl sinfi asos hisoblanadi va u elementning o'lchami va joylashuvi, uning sarlohasi ,rangi va shunga uxshash parametrlaridan iborat asosiy funksional atributlarni ta'minlaydi . TControl sinfi vizual komponentalar uchun umumiy bo'lgan xossalar , hodisalar va metodlarni o'z ichiga oladi . Vizual komponentalarni ikkita katta guruhga ajratish mumkin :
1. To'g'ri to'rtburchakli boshqaruv elementlari
2. To'g'ri to'rtburchakli bo'lmagan boshqaruv elementlari

To'g'ri to'rtburchakli boshqaruv elementi o'zida ma'lum bir maqsad uchun aniqlangan maxsus to'g'ri to'rtburchakni ifodalaydi . Bu elementlarga misol
tariqasida boshqaruv tugmalarini , taxrir maydonlari ,xarakatlanish yo'laklarini ko'rsatishimiz mumkin. Ular uchun asos sinf TWinControl hisoblanadi.
To'g'ri to'rtburchak elementlari qiymar kiritish fokuslarini ilishi mumkin . Elementni fokus olganligi ikki xil usulda kursatiladi :
1. Taxrir kursori yordamida
2. To'g'ri to'rtburchak orqali

Matn taxrirlari bo'lgan Edit va Memo elementlari o'z sohasida tahrir kursori (matn kursori) paydo bo'lishi orqali fokus olganligini bildiradi.
Ma'lumotlarni tahrirlash bilan bog'liq bo'lmagan komponentalarda qora punktir chiziqli to'g'ri to'rtburchak paydo bo'lishi uning fokus olganligini anglatadi . Masalan , Button tugmasi fokus olganda sarloha atrofida to'g'ri to'rtburchak paydo bo'ladi , ListBox da esa ro'yxatdagi ayni paytda
tanlangan satrni ajratilgan holda (aksariyat hollarda ko'k fonda) ko'rsatadi.
Bulardan tashqari , to'g'ri to'rtburchak boshqaruv elementlari konteyner sifatida o'z ichida boshqa boshqaruv elementlarini olishi mumkin . Bu holda
boshqaruv elementi o'z ichidagilarga ota hisoblanadi.
To'g'ri to'rtburchak bo'lmagan boshqaruv elementlari TGraphicControl sinfining avlodlari hisoblanadi . Bu guruh elementi qiymat kiritish fokusini
ololmaydi va interfeys elementlari uchun ota bo'la olmaydi . To'g'ri to'rtburchak bo'lmagan boshqaruv komponentalarining afzalligi - ularni nisbatan kam resurs talab qilishida .
Vizual komponentalar ko'plagan umumiy xossalr , hodisalar va metodlarga ega :

XOSSALAR

Xossalar ilovalar yaratilishi va boshqarilishida komponentalar tashqi ko'rinishi va amal qilishini boshqarish imkonoyatini beradi . Odatda komponenta
xossasinig qiymatlari ilovalarni yaratish vaqtida Ob'ektlar Inspektori yordamida amalga oshiriladi . Keltiriladigan misollarda tushunarli bo'lishi uchun
xossalar qiymatlari qiymat berish operatori yordamida amalga oshiriladi .
Shuni ta'kidlab o'tish kerakki , komponentalar barcha xossaga ega bo'lmasligi mumkin . Masalan , Edit tahriri Caption xossasiga ega emas , Label yozuvi ReadOnly xossasiga ega emas va xokozo .
Quyida komponentalarda uchraydigan asosiy xossalarga izox beramiz .
Caption xossasi komponenta sarlavxasini yozish satrini o'z ichiga oladi . Caption TCaption turida bo'lib , bu tur String turiga o'xshash. Sarlavxa satridagi ayrim belgilar tagiga chizilgan bo'lishi mumkin , ular tezkor murojaat tugmalarining kombinatsiyasini bildiradi . Ko'rsatilgan belgini < Alt > tugmasi bilan bir vaqtda bosilishi shu sarlohadagi koponentaga sichqonchaning tugmasini bosish bilan bir xil amalni yuzaga keltiradi . Tezkor murojaat belgisini sarlohada zarur belgi oldiga "&" belgisini quyish orqali aniqlanadi , masalan :
Button1.Caption:='&Close'; < Alt > + < F4 >
Label1.Caption:='Avtobus &Nomerini kiriting ' ; < Alt > + < H >

Align (TAlign turida) xossasi komponentani u joylashgan konteyner ichidagi joylashuv variantlarini aniqlaydi. Aksariyat hollarda konteyner sifatida
Form formasi yoki Panel paneli keladi .
Align xossasi quyidagi qiymatlarning birini qabul qilishi mumkin :
- alNone - to'g'rilash amalga oshirilmaydi . Komponenta ilovani yaratish paytida qaerga joylashtirilgan bo'lsa , shu joyda qoladi .
- alTop - komponenta konteynerning yuqori qismiga ko'chiriladi , komponenta balandligi o'zgarmaydi , eni esa konteyner eniga teng bo'ladi .
- alBottom - AlTop ga o'xshash , faqat komponenta konteyner pastiga joylashadi .
- alLeft - komponenta konteynerning chap tomoniga ko'chadi , eni o'zgarmaydi , buyi esa konteyner buyiga tenglashadi .
- alRight - alLeft ga o'xshash , faqat komponenta konteynerning o'ng tomoniga ko'chadi.
- al Client - komponenta konteynerni to'la egallaydi .
Misol . Panelni formaga nisbatan tog'rilash .
Panel1.Align:=AlTop
Panel1 paneli Form1 formaning yuqori qismiga joylashadi.
Color (TColor turida ) komponenta fonining rangini aniqlaydi . Color xossasinig qiymati 4 baytli 16 lik son bo'lib , uning katta bayti palitrasini
ko'rsatadi ( odatda $00) , kichik uchta bayti qizil , yashil va ko'k ranglarning RGB intensivligini aniqlaydi :bu ranglarni turli nisbatdagi aralashmasidan
natijaviy rang xosil bo'ladi .
Masalan , $000000 - qora , $FFFFFF - oq , $0000FF - qizil , $00FF00 - yashil , $FF0000 ko'k rangni beradi.
Ranglar qiymatini konstantalar orqali berish ancha qulay . Quyidagi jadvalda asosiy ranglarning konstantalari keltirilgan .

Konstanta Rang Qiymat
-----------------------------------------------------------------------------
clAqua Och ko'k $FFFF00
clBlack Qora $000000
...
O'zgarmaslarning ikkinchi bir qismi Windows tizimi palitrasidagi ranglarga ko'rsatadi . Bu konstantalarga mos ranglar tizimida tanlangan rang sxemasi ga bog'liq ravishda aniqlanadi .

Konstanta Rang
--------------------------------------------------------------------------------
clBlackground Darcha foni (fona okna )
clActiveCaption Aktiv darcha sarlohasi
...
Ctr3D xossasi boolean turida bo'lib , vizual komponenta ko'rinishini aniqlaydi . Agar Ctr3D qiymati False bo'lsa komponenta ikki o'lchamli
tasvir kurinishida , agar True bo'lsa - uch ulchamli tasvirlanadi (kelishilgan holdagi ko'rinish ) .

Cursor xossasi (TCursor turida ) sichqoncha ko'rsatgichining ko'rinishini aniqlab beradi . Bu ko'rinishlar 20 tadan ortiq bo'lib , ular ichida eng
asosiylari quyidagi konstantalar bilan beriladi :

crDefault - sichqoncha ko'rsatgichi kelishuv bo'yicha ( odatda strelka)
crNone - ko'rsatgich ko'rinmaydi.
crArrow - ko'rsatgich strelka ko'rinishida
crCross - ko'rsatgich xoch ko'rinishida
crHourGlas - ko'rsatgich qum soati ko'rinishida

Mavjud ko'rinishlardan tashqari foydalanuvchining o'zi sichqoncha ko'rsatgichi uchun rasm yaratishi mumkin va uni mos formatlarda ( CUR ,RES)
saqlashi zarur .Buning uchun Delphi tarkibiga kiruvchi Image Editor dan foydalanishi mumkin. Programma ishlash vaqtida ko'rsatgich tasviri fayldan yuklanishi va Cursor xossasining qiymati sifatida tasvir nomeri berilishi kerak .

DragCursor (TCursor turida) xossasi komponentani ko'chirish jarayonida kursor ko'rinishinio aniqlaydi . Bu xossa qiymatlari Cursor qiymatlaridan farq qilmaydi .

Enabled xossasi boolean turida bo'lib komponentani aktivligini , ya'ni sichqoncha yoki klaviaturadan kelayotgan signallarga aks ta'sir bera olishini
aniqlaydi . Agar xossa True ( kelishilgan xol qiymati ) qiymatga ega bo'lsa , komponenta aktiv hisoblanadi , aks holda aktiv emas . Komponentaning aktiv bo'lmagan xoli sarlovxa yoki matnni oqargan rangda ekanligini bildiradi . Komponenta o'chirilgan ( blokirovka qilingan ) bo'ladi , agar u bilan bog'liq qandaydir amalni bajarishni iloji bo'lmasa . Masalan , Save tugmasi xujjatni saqlash amalini bajaradigan bo'lsin , agar saqlanadigan xujjatning o'zi
bo'lmasa , saqlash amalining ma'nosi yo'q . Bunday hollarda tugma aktiv bo'lmagan xolatga o'tkaziladi :
Save.Enabled :=False;

Font Xossasi ( TFont turida ) vizual komponenta akslanuvchi matn shriftini aniqlaydi . O'z navbatida TFont sinfi shrift parametrlarini boshqarishga imkon beruvchi xossalariga ega . Bularning ichida asosiylari quyidagilar :

Name - Shrift nomini aniqlaydi
Size - Punktlarda shrift o'lchamini beradi
Style - Shrift Stilini beradi
Color - Matn rangini boshqaradi

Masalan , Label1 yozuvining rangini berish :
Label1.Font.Color:=clBreen ; Label1.Color:=clBlue;
Yozuv moviy fonddagi yashil matn ko'rinishida bo'ladi .

Height va Width ( Integer turida ) xossalari komponentaning mos ravishda vertikal va gorizontal o'lchamlarini piksillarda beradi .

Left va Top xossasi ( Integer turida ) komponentaning u joylashgan konteynerga ( forma yoki panelga ) koordinatalarini aniqlaydi . O'z o'rnida
forma ham komponenta va uning koordinatalari ekranning chap yuqori burchagiga nisbatan aniqlanadi .

HelpContext (THelpContext turida ) xossasi ma'lumotnoma tizimidagi kontekst nomerini beradi . Programma bajarilishida komponenta fokusda
bo'lgan holda < F1 > tugmasi bosilganda , aynan shu komponenta bilan bog'liq matn ekranga chiqadi .

Hint xossasi ( String turida ) kursor komponenta sohasida va bir necha soniya harakatsiz holatda bo'lganda ekranga yordamchi matnni chiqaradi . Yordamchi matn sariq fondda chiqadi va komponentaning ishlatilish maqsadini qisqacha yoritadi . Yordamchi matn ekranda paydo bo'lishi uchun boolean turidagi ShowHint xossasining qiymatini True deb aniqlash zarur .

PopupMenu xossasi suzib chiquvchi lokal menuga ko'rsatadi . Bu menyu sichqoncha ko'rsatgichi komponenta maydonida ( soxasida) turgan holda sichqonchaning o'ng tugmasi bosilganda paydo bo'ladi va bu xolat ro'y berish uchun AutoPopup xossasiga ( boolean turidagi ) True qiymatini berish kerak . Kelishuv buyicha uning qiymati False bo'ladi .

Text Xossai (TCaption turida ) Caption xossasiga o'xshab komponenta bilan bog'liq matnni o'zida saqlaydi . Caption xossasidan farqli ravishda Text sarloxa sifatida paydo bo'lmasdan komponenta elementining mazmunini aniqlaydi . Masalan , Edit , Memo komponentalarida Text xossasi ular ichida tahrirlanadigan belgi berilganlarni akslantiradi .

TabOrder xossasi ( TTabOrder turida ) konteynerdagi komponentalarning fokus olish tartibini aniqlaydi ( < Tab > tugmasi bosilganda ), ya'ni
komponentalar "aylanib " chiqish ketma - ketligini aniqlaydi . Kelishuv bo'yicha bu ketma - ketlik formani ko'rinishini yaratishda komponentalarning konteynerga joylashtirish tartibiga mos keladi : birinchi komponentaning TabOrder xossasining qiymati 0 , ikkinchisiniki -1 va hokozo . Tartibni o'zgartirish uchun komponentaning TabOrder xossasiga zarur qiymatni berish kerak . Har bir konteyner boshqalariga bog'liq bo'lmagan tabulyatsiya tartibiga ega bo'ladi . Ikkita komponenta bir xil tabulyatsiya tartibiga ega bo'lishi mumkin emas .

TabStop xossasi ( boolean turida ) TabOrder bilan birgalikda ishlatilib , komponentaning fokus olishi yoki yo'qligini aniqlaydi . Agar TabStop xossasining qiymati True bo'lsa komponenta fokus olishi mumkin , aks xolda yo'q. Vizual komponentalarning tabulatsiya tartibini Edit buyruqlar menu sida joylashgan Edit Tab Order ( Tabulyatsiya tartibini o'zgartirish ) dialog darchasi orqali amalga oshirish mumkin .

ReadOnly xossasi boolean turida bo'lib , boshqaruv elementiga unda joylashgan matnni kiritish yoki taxrirlash bilan bog'liq amallarga ruxsat bor yoki yo'qligini aniqlaydi . Agar ReadOnly xossasi True qiymatga ega bo'lsa unda matnga faqat o'qish uchun murjaat qilish mumkin , agar ReadOnly xossasi False qiymati qabul qilsa , matnni taxrirlash mumkin bo'ladi. Masalan Edit satridan matnni faqat o'qish rejimida bermoqchi b'olsak ,
quyidagi amallar ketma - ketligi bajarilishi kerak :
Edit1.Text:=' O'zgarmas matn ';
Edit1.ReadOnly:=True;
Shuni ta'kidlash kerakki , ReadOnly faqat ilova ishlagan paytdagina amal qiladi va programma tuzuvchi ReadOnly xossasining qiymati True bo'lganda ham Text xossasining qiymatlarini o'zgartirishi mumkin .

Vizual komponentalar Color, Ctr3D, Font va Showhint xossalari uchun qiymatni ota boshqaruv elementining mos xossalarining qiymatini olishi mumkin . Ko'rsatilgan xossalarning qiymat manbaini boolean turidagi quyidagi xossalar aniqlab beradi :

ParentColor - Fon rangi uchun
Parent Ctl3D - Komponenta ko'rinishi
ParentFont - Matn shrifti uchun
ParentShowHint - Yordamchi matnni ko'rsatish uchun

Aksariyat xollarda kelishuv buyicha bu xossalar qiymatlari True bo'ladi . Agar programma tuzuvchi komponentadagi mos xossalarni o'zgartirsa , unga mos keluvchi Parent... xossasining qiymati False ga aylanadi .

Parent xossasi ( TWinControl ) komponenta uchun ota boshqaruv elementiga ko'rsatadi . Ota boshqaruv elementi sifatida konteyner keladi va o'z ichidagi vizual komponentalarni tasvirlanishiga javob beradi .
Formani loyixalashda va unga turli xil komponentalarni joylashtirishda komponentani qaysi konteynerga joylashishiga mos keladi Parent xossasi avtomatik ravishda to'g'ri qiymat qabul qiladi . Komponentalarni dinamik ravishda yaratish vaqtida komponentaning Parent xossasiga "qo'lda " qiymat berishga to'g'ri keladi . Masalan , tugma komponentasini dinamik ravishda yaratishni ko'raylik .

Procedure TForm1.Button1Click(Sender : TObject):
Begin
with Tlabel.Create( Self ) do begin
Caption:= ' Yangi yozuv ';
Parent :=Panel1;
Left :=20;
Top :=30;
end;
End;

Button1 tugmasi bosilganda Panel1 panelida Label1 yozuvi paydo bo'ladi . Agar Parent xossa qiymati berilmasa , Label1 yaratiladi , lekin ekranda ko'rinmaydi . Komponentalarda
Owner xossasi mavjud bo'lib , u komponentaning egasi bo'lgan elementga ko'rsatadi . Odatda komponentalar egasi ular joylashgan forma bo'ladi . Agar ega komponenta o'chirilsa , u egalik qiluvchi barcha komponentalar o'chib ketadi .

DragMode ( TDragMode ) xossasi ob'ektlarni drag-and-drop ( ko'chirish va qoldirish ) usulida ob'ektlarni ko'chirish bilan bog'liq amallani programma ishlatadi va sichqoncha bilan ko'chirilayotganda boshqaruv elementini o'zini tutishini aniqlaydi . DragMode xossasi ikkita qiymat qabul qilishi mumkin : dmAutomatic va dmManual . Kelishuv bo'yicha dmManual qiymatga ega va shu sababli boshqaruv elementini BeginDrag metodi chiqarilmaguncha ko'chirib bo'lmaydi . Agar xossaning qiymati dmAutomatic bo'lsa , boshqaruv elementini ixtiyoriy paytda ko'chirish mumkin .DragMode xossasi qiymati o'rnatishdan tashqari boshqaruv elementi harakatini boshqaruvchi hodisani qayta - ishlovchisini kodini yozish kerak .

Action xossasi ( TBasicAction turida ) bir-biri bilan mazmunan bog'langan boshqaruv elementlari uchun yagona amalni ( protsedurani )
bajarish holatlarida ishlatiladi . Maxsus ActionList komponentasida amallar ro'yxati aniqlanadi va boshqaruv komponentasining Action xossasi
orqali ro'yhatdagi amallar bilan bog'lanadi . Odatda Action dan turli elementlarni markazlashgan xolda boshqarish uchun foydalaniladi . Masalan , Button1 tugmasi bilan MenuItem menyusining punktini yagona amal bilan bog'lash mumkin . Quyida amal ob'ekti bilan bog'lanish
tashkel qilishga misol keltirilgan .

procedure TForm1.FormCreate(Sender:TObject);
begin
Button1.Action:=Action1;
end;

Bu yerda Button1 tugmasi Action1 amal ob'ekti bilan bog'langan Button1 tugmasini bosganda OnClick xodisasi chaqirilmaydi , balki Action1 amal ob'ektidagi OnExecute hodisa qayta - ishlovchisi chaqiriladi .
Constraints xossasi interfeys elementlari o'lchamlarini cheklash uchun kiritilgan . Bu xossa TSizeContraints turida bo'lib , bu tur ham o'z xossalariga ega . Ular ichida eng muhimlari MinHeight , MaxHeight , MinWidth va MaxWidth xossalari hisoblanadi va ular mos ravishda boshqaruv elementining balandligi va enining maksimal va minimal qiymatlarini beradi . O'z navbatida boshqaruv elementining bo'yi va eni piksel o'lchamida Height va Width xossalarining qiymatlari orqali aniqlanadi . Boshqaruv elementi o'lchamlariga cheklov qo'yish uni ichida joylashgan boshqa elementlarni ko'rinmay qolishligini oldini olishga qaratilgan .

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 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);
Begin
Label1. Caption := TimeToStr(Time);
end ;
Sichqoncha bilan label1 yozuvida bosganda uning joriy vaqt akslanadi.

OnClick xodisasi boshqa xollarda ham yuzaga kelishi mumken. Masalan Button kompanentasida kiritish fokus turgan holda <Probel>yoki <Enter> tugmasi bosilsa CheckBox kompanentasi uchun<Probel> 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

Delphi yuqorida qayd qilingan holatlarda qo'lda yuzaga keltirishga imkon beradi .
Masalan : Button2.Click operatori Button2 tugmasi bosilishini immitatsiya qiladi.
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 <Alt> , <Ctrl> va <Shift> tugmalarining holatini bildiradi . Bu parametr quyidagi qiymatlarning kombinatsiyasini olishi mumkin :

SsShift - <Shift> 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( );
Begin
Form1.Caption:='Sichqoncha ko'rsatgichi koordinatalari :' + IntToStr(x) + ' va ' + IntToStr(y) ) ;
end;

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 ; var Key:char) of Object ;
Bu yerda key parametri bosilgan tugmasi mos keluvchi belgining ASCII kodi .
OnKeyPress hodisasini qayta ishlashga misol

Procedure TForm1.EditKeyPress( Sender : TObject ; var Key:Char);
Begin
if key='!' key=#0;
End;

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 ; var Key:word ; Shift:TShiftState) of Object ;

Bu hodisalar <Shift> , <Ctrl> , <Alt> 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);
Begin
if (Shift=[SsCtrl])and(chr(Key)='c')then
MessageDlg('''Ctrl-C'' tugmalari bosildi ' , mtconfirmation, [mbOk],0 );
End;

Agar Edit2 komponentasi qiymat kiritish formulasida bo'lsa , < Ctrl> va <C> tugmalari birgalikda bosilsa Confirm dialog darchasi ' Ctrl - C tugmalari bosildi ' xabari bilan ekranda paydo bo'ladi .
Ayrim tugmalar o'ziga xosliklarga ega , masalan <Esc> tugmasi bosilganda OnKeyPress va OnKeyUp hodisalari yuz bermaydi.
OnEnter hodisasi boshqaruv elementlari fokus olgansda yuz beradi ( sichqoncha yoki <Tab> tugmasi yordamida)
OnExit hodisasi darcha boshqaruv elementi fokusni yuqotganda yuz beradi .
Boshqaruv elementi fokus olgandagi yoki fokusni yuqotgandagi hodisalarni qayta - ishlash proceduralari:

Procedure TForm1.Edit1.Enter(Sender:TObject);
Begin
Label5.Caption:=(Sender as TControl).Name +'aktivlashdi');
End;
Procedure TForm1.Edit1.Exit(Sender:TObject);
Begin
Label5.Caption:=TEdit(Sender).Name + ' aktiv emas');
End;

Label5 yozuvi sarlohasida Edit1 tahririning aktivligi yoki aktiv emasligi aniqlanadi . Bu yerda Name xossasiga murojaat ikki xil usulda amalga oshirilgan . Birinchi protsedurada Sender parametri oshkormas ravishda TControl turiga olib kelingan bo'lsa ,ikkinchi protsedurada Sender oshkor ravishda TEdit turiga keltirilgan .
Drag - and - Drop ( ko'chirish va qoldirish ) texnalogiyasi foydalanuvchiga turli ob'ektlar ko'chirish imkoniyatini beradi , masalan , bitta ruyhat elementlarini ikkinchisiga ko'chirish . Bunda ikkita boshqaruv elementi ishlatiladi : Manba va qabul qiluvchi
Manba ko'ruvchi obektni o'z ichga olsa, qabul qiluvchiga esa ko'chiriluvchi obektni oluvchi boshqauv elementlari hisoblanadi. Obektlarni ko'chirish bilan qo'yidagi hodisalar bog'langan:
OnStartDrag hodisasi manba tomonidan obektni ko'chirish boshlanganda yuzaga keltiriladi. Hodisani qayta -ishlovchisiga qo'yidagilar beriladi: obekt - manba Sourse (Tobject turida) va ko'chirish amali adresati - DragObjecr (TDragObject turida).
OnDragOver (TDragOverEvenf turida) hodisasi qabul qiluvchi tomonidan ko'chirilayotgan
obekt uning ustida bo'lganda yuzaga keltiriladi. Hodisa qayta ishlovchisiga qo'yidagi parametrlar
uzatiladi: Sender - obekt manba Sender - obekt qabul qiluvchi sichqoncha ko'rsatkichini X va Y
koordinatalari State- ko'chirish holati va ko'chirish amalini tasdiqlovchi Boolean turidagi Accept turidagi . State parametri ko'chiriluvchi obekt qabul qiluvchi sohasiga kirdimi, bu sohada u harakatlanmoqdami, uni bari etgin yoki yo'qligini bildiradi. Uzatilgan parametrlar taxlili Qabul qiluvchi ko'chirish amalini qabul qilish yoki inkor qilish (Accert=False) imkonini beradi.
OnDragdrop (TDragOverEvenf turida) hodisasi qabul qiluvchi tomonidan obekt unga
joylashtirilganda ro'y beradi. Hodisa qayta - ishlovchisiga qo'yidagi ma'lumotlar jo'natiladi; Sourse - joylashuvchi obekt, Sender - Qabul qiluvchi obekt, X va Y - sichqancha ko'rsatkich ikoordinatalari.
OnEndDrag hodisasi manba tomonidan ko'chirish amali tugaganda hosil qilinadi. Hodisa qayta - ishlovchisiga Target - Qabul qilgan obekt, Sender ko'chirilgan obekt va unuig yangi X , Y koordinatalari.
Eslatib utish kerakki, OnDragDrop va OnDragOver hodisalari uchun Sender manba,
OnEndDrag hodisasi uchun Sender - ko'chiriluvchi obekt.
Ko'chirishni amalga oshirish uchun ko'rsatilgan hodisalarning qayta - ishlovchisini ( prosedurasini) yoish kerak. Odayda OnDragDrap va OnDragOver hodisalarini qayta ishlash etarli.
Ko'chiriluvchi obektning DragMode xossasiga dmAvtomatic qiymatini berush zarur . Bunda kuchirish amali avtomatik ravishda amalga oshadi, aks xolda pragrammaviy yo'l bilan Begin Drag metodini chaqirish kerak bo'ladi.
Misol Lavil1 yozuvini formula chegarasida kuchirishi .
// Label1 . yozuvi=DragMode xossasiga dmAvtomatic qiymatini berish kerak .
Procedure TForm1. FormDragOver(SenderSourse: Tobject:X,Y: Integer; State: TDargState: Var Accept:Boolean);
Begin
If Sourse=Lable1 then Accept :=then else Accept:=False;
end;
Procedure TForm1.FormDragDrop(Sender, Sourse:Tobject ; X,Y:Integer);
Begin
Label1.Left:=X ; Label1.top:=Y;
end;

Qo'yidagi misolda kompanentaning tanlangan elementlarini ko'chirishga misol keltirilgan.
Misol. Ro'yxat elementlarini bir ro'yhatdan ikkinchisiga ko'chirish
// ListBox1 ro'yhati= DragMode hossasining qiymati dnAutomatic berish kerak.
Procedure TForm1.ListBox2DragOver(Sender, Sourse: Tobject; X,Y:Integer; State:TDragState; Var Accept:Boolean);
Begin
if Sourse=ListBox1 the Accept:=True else Accept:=False;
end;

Share