Dəyişdiricilər
Dəyişdiricilərin köməyi ilə istifadəçi lazım olan parametrləri seçmək imkanı əldə
edir. Dəyişdiricilərə demək olar ki, Windows-un bütün pəncərələrində rast gəlmək
downloaded from KitabYurdu.org
207
mümkündür. Dəyişdiricilər iki növ olur: müstəqil qeyd olunmuş və asılı qeyd olunmuş.
Müstəqil qeyd ol
u
nmuş dəyişdiriciyə sadəcə olaraq bayraq da deyirlər. Bayraqlar iki
vəziyyətdə - qoşulmuş va qoşulmamış vəziyyətlərdə olur. Asılı qeyd olunmuş
dəyişdiricilərə isə sadəcə olaraq dəyişdiricilər deyirlər. Onlar da həmin iki vəziyyətdə
olur, lakin bayraqlar təklikdə işlədikləri halda, dəyişdiricilər tək işləyə bilmir.
Dəyişdiricilərdən biri həmişə qoşulmuş vəziyyətdə olur. Bu halda digər dəyişdiricilər
qoşula bilmir. Dəyişdiricilərlə işləmək üçün Delphi CheckBox, RadioButton və
RadioGroup komponentləri təklif edir. CheckBox və RadioButton c dəyişdiriciləri Button
düyməsinin əmələ gəldiyi TButtonControl sinfindən yaranmışdır.
Müstəqil qeyd olunmuş dəyişdirici
Bu dəyişdirici CheckBox komponenti ilə yaradılır. Dəyişdirici sərlövhədən ibarət
düzbucaqlı şəklindədir. Düzbucaqlı daxilində mausun sol düyməsini basdıqda işarəsi
əmələ gəlir. Bu halda dəyişdirici qoşulmuş hesab olunur və deyirlər ki, "bayraq"
qoyulmuşdur. Düzbucaqlı boş olduqda deyirlər ki, bayraq atılmışdır, yəni istifadəçi
həmin parametrdən imtina edir.
Bayrağın vəziyyətini Checked xassəsi müəyyən edir. Susmaya görə onun qiyməti
False-dıv, yəni bayraq atılmışdır.
İstifadəçi bayrağın vəziyyətini mausla dəyişdirə bilər. Belə ki, əgər bayraq
atılmışdırsa, mausun düyməsini basdıqda bayraq qoyulur və əksinə, bayraq
qoyulmuşdursa, mausun düyməsini basdıqda bayraq atılır. Buna müvafıq olaraq Checked
xassəsinin qiyməti də dəyişir. Əgər CheckBox komponenti fokus almış vəziyyətdə olarsa,
onda bayrağı probel klavişini basmaqla da qoymaq və ya atmaq olar. Checked xassəsinə
kod vasitəsilə də qiymət vermək olar:
CheckBoxl.Checked:=true;
CheckBox2.Checked:=false;
Əgər Enabled xassəsinə False qiyməti verilərsə, onda bayrağın dəyişdirilməsi
mümkün olmur, məsələn, CheckBoxl. Enabled: =false;
Müstəqil qeyd olunmuş dəyişdiricinin üçüncü vəziyyəti imtina olunmuş vəziyyətdir.
Bu vəziyyəti AllowGrayed xassəsi idarə edir. Əgər bu xassənin qiyməti True olarsa,
mausun klavişini basdıqda bayraq üç vəziyyət arasında dövrü dəyişir: qoşulur, qoşulmur
və imtina olunur. İmtina olunmuş vəziyyətdə düzbucaqlı daxilində işarəsi olmasına
downloaded from KitabYurdu.org
208
baxmayaraq dəyişdirici boz rəngli olur.
Bayrağın üç vəziyyətindən birini seçmək və onu təhlil etmək üçün, TCheckBoxState
tipli State xassəsindən istifadə olunur. Bu xassə aşağıdakı qiymətləri ala bilər:
cb
u
nChecked - bayraq atılmışdır;
cbChecked - bayraq qoyulmuşdur;
cbGrayed - bayraq qadağan olunmuşdur.
Dəyişdiricinin hansı vəziyyətə keçməsindən asılı olmayaraq, onun vəziyyətini
dəyişdikdə OnClick hadisəsi baş verir.
Misal. Vurma cədvəlinin tərtib edilməsi.
Vurma cədvəlini proqramlaşdırmaq çox asan məsələdir. Lakin, biz adi vurma cədvəli
tərtib etməyəcəyik. Biz vuruqları klaviaturadan deyil, şkala adlanan idarəedici
elementdən daxil edəcəyik.
Qiymətlər diapazonu ilə işləmək üçün Delphi şkala adlanan TrackBar komponentini
təklif edir ki, onun köməyi ilə qiymətlər diapazonundan tam ədədləri seçmək
mümkündür. Bu komponent də Windows sistemində geniş istifadə olunur. Buna ən sadə
misal olaraq audio-qurguların səs gücləndirici şkalasmı göstərmək oiar. Bu komponentin
xassəiərini məsələnin həlli prosesində öyrənscəyik.
Vurma cədvəlində iki vuruq olduğuna görə, bizə iki şkala komponenti lazım
olacaqdır. Ona görə də forma üzərinə Win32 səhifəsindən iki TrackBar, Standart
səhifəsindən isə üç Label, bir CheckBox və bir GroupBox komponenti yerləşdirin.
Şkala üzərində hərəkət edən (maus və ya idarəetmə klavişləri ilə) məkiyin mövqeyi
vuruqlarını qiymətini müəyyən edir. Bu qiymətləri şkalaların sağ tərəfındə yerləşdirilmiş
yazı komponentləri üzərində təsvir etdirəcəyik. Hər iki şkala tamamilə eyni işləməlidir.
Ona görə də hər iki şkalanın xassələrinə eyni qiymətlər verəcəyik. Şkalaları növbə ilə
seçərək Obyektlər inspektorunda aşağıdakı xassələrin qiymətlərini müəyyənləşdirin.
Orientation xassəsi - şkalanın üfqi və ya şaquli vəziyyətdə olmasını müəyyən edir.
Bu xassə ttHorizontal qiyməti verin.
Min (Minimum) xassəsi - şkalanın minimal qiymətini müəyyən edir. Bu xassəyə 2
qiyməti daxil edin.
downloaded from KitabYurdu.org
209
Max (Maksimum) xassəsi - şkalanın maksimal qiymətini müəyyən edir. Bu
xassəyə 99 qiyməti daxil edin. Bu halda ikirəqəmli ədədlərin xassənin qiymətini
dəyişmək lazımdır {999, 9999 və s.).
Position (Mövqe) xassəsi - məkiyin mövqeyini bildirir. Məkiyi hərəkət
etdirdikdəonun qiyməti avtomatik olaraq dəyişir.
Position xassəsi ilə məkiyin başlanğıc vəziyyətini müəyyən etmək olar. Bu
qiymət Min və Max diapazonunda olmalıdır. Başlanğıc anda məkiyin kənarda
yerləşməsi üçün bu xassəyə də 2 qiyməti daxil edin.
LineSize (Dəyişmə addımı) xassəsi - məkiyi idarəetmə klavişləri ilə (sağa, sola, aşağı
və yuxarı) hərəkət etdirdikdə dəyişmə addımını müəyyən edir. Bu xassəyə 1, yəni
minimal qiymət daxil edin.
PageSize (Dəyişmə addımı) xassəsi - məkiyi PageUp və PageDow klavişləri ilə
hərəkət etdirdikdə dəyişmə addımını müəyyən edir. Bu xassəyə ixtiyari, məsələn, 7
qiyməti verin.
Frequency (Şkala tezliyi) xassəsi - şkalada bölgülərin yerləşmə sıxlığını müəyyən
edir. Bu xassəyə də 7 qiyməti verin. Bu zaman məkik bir bölg digər bölgüyə atılacaqdır.
İndi isə GroupBox qrup komponentini seçin. Bu komponent də yenidir. GroupBox
komponenti düzbucaqlı haşiyədən və onun sol yuxarı küncündə yerləşən sərlövhədən
ibarətdir. Bu komponentin xassəsini Hasil adlandırın. Onun üzərindəki Label3
komponentinin Aligment xassəsinə taLeft Justify qiyməti verin.
Mühazirə 22: Dialoqlarla iş
Ms Windows sistemi və onun əlavələri ilə işlədikdə biz dialoqlarla demək olar ki,
hər addımda rastlaşırıq. Bu dialoqlar ən müxtəlif xarakterlidir. Delphi-də dialoqlar iki
üsulla yerinə yetirilir:
-
xüsusi prosedur və funksiyalar vasitəsilə;
-
dialoq komponentləri ilə.
Dialoq prosedur və funksiyaları
downloaded from KitabYurdu.org
210
Delphi-də bir neçə xüsusi prosedur və funksiyalar mövcuddur ki, onlar ümumi
təyinatlı sadə dialoqları ekranda əks etdirmək üçün nəzərdə tutulmuşdur. Bu prosedur və
funksiyaların bəziləri ilə qısa tanış olaq.
Xüsusi prosedur və funksiyalar iki qrupa bölünür:
-
məlumatı pəncərəyə çıxarmaq üçün;
-
məlumatı pəncərədən daxil etmək üçün.
ShowMessage, MessageDlg və MessageDlgPos prosedur və funksiyaları birinci
qrupa, InputBox və InputQuery funksiyalan isə ikinci qrupa aiddir.
ShowMessage (const
Msg
: String); proseduru - icra olunduqda ekranda məlumat
dialoq pəncərəsi peyda olur ki, onun sərlövhəsi icra olunar əlavə faylının adından,
pəncərənin özü isə
Msg
məlumat sətri və
Ok
düyməsindən ibarət olur. Biz bu proseduru
həil etdiyimiz məsələlərdə dəfələrlə tətbiq etmişik.
MessageDlg (const
Msg
: String;
AType
: TMsgDlgType;
Dostları ilə paylaş: |