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 sarlovhadagi koponentaga sichqonchaning
tugmasini bosish bilan bir xil amalni yuzaga keltiradi. Tezkor murojaat belgisini
sarlovhada 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.
- alClient - komponenta konteynerni to'la egallaydi .
Misol . Panelni formaga nisbatan tog'rilash.
Panel1->Align=AlTop;
Panel1 paneli Form1 formaning yuqori qismiga joylashadi.
75
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 Builder tarkibiga kiruvchi Image Editor dan
foydalanishi mumkin. Programma ishlash vaqtida ko'rsatgich tasviri fayldan
yuklanishi va Cursor xossasining qiymati sifatida tasvir nomeri berilishi kerak .
76
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 .
77
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
78
. 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.
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.
|