2000-də Borland Linux üçün vizual mühit yaratdı. Onun əsasını Delphi və VCL-təşkil edirdi.
Qərara gəldik ki, elə yeni bir kitabxana yaratsınlar ki, həm Windows həm də Linux-da onunla
işləmək mümkün olsun. Bu o deməkdir ki, Widowus-da yazılan kod Linuxda asanlıqla komplyasiya
oluna bilməlidir və həç bir dəyişiklik edilmədən 2001-də yeni Kylix mühiti yarandı, o, Delphidə
yazılan kodları Linuxda da komplyasiya etməyə imkan verdi. Komponent modeli olaraq CLX
istifadə olunurdu. Bu prinsipə elə VCL-dir, sadəcə az dəyişiklik edilib.
Varislik
Sinif bir çox üstünlüklərə malikdir. Varislik onlardan biridir. Bu OYP-nın əsasıdır hətta ən
sadə proqramda bir varislikliklə rastlaşırıq. Məsələn, siz qaraj obyekti yazmısız. İndi ev obyekti
yaratmalısız. Qaraj kobud desək birotaqlı evdir. Bu hər iki bina eyni xassələrə malikdir: divar,
döşəmə, tavan və s. Buna görə də qaraj götürüb, onu evə qədər tamamlamaq yaxşı olar. Bunun üçün
siz yeni “ev” obyekti yaradıb onun qaraja aid olduğunu qeyd edirsiniz. Beləliklə, sizin yeni obyekt
qarajın bütün xassələrini özünə götürəcək. İndi ik obyektimiz var: qaraj və ev. Daha bir ev də
tikmək olar. Burada “valideyn” və “övlad” anlayışı yaranır. Məsələn qaraj valideyn, ev isə övladdır.
Övlad valideynin xassələrini götürür, amma valideyn övladın digər xassələrindən xəbərsiz olur.
Varislik prinisipi OYP-də qəbul olunmuşdur.
Polimorfizm
Bu nədir? Təsəvvür edin ki, qarajın qapısı yuxarı, evin qapısı isə sağa (və ya sola) açılır. Ev
qarajdan alındığından onun da qapısı yuxarı açılacaq. Nə etməli? Sadəcə evdə qapını açan
prosedurda dəyişiklik etmək lazımdır. Onda ev qarajın bütün xassələrini alır, lakin qapını açan
zaman öz prosedurunu icra edir. Polimorfizm də belədir. Başqa sözlə üxtəlif ierarxiyanın obyektləri
eyni bir hadisəyə müxtəlif cür reaksiya verir. Qapını açmağa cavab verən proseduru dəyişmək üçün
qarajda o virtual elan olunmalıdır. Virtual prosedura o deməkdir ki, övlad obyektdə o dəyişdirilə
bilər. Polimorfizmə xas olan daha bir termin də var ki, bu da dinamiklikdir. Prinsip etibarı ilə nəticə
ayni olacaq, lakin virtual proqramın sürətinin artması üçün optimallaşdırılır, dinamik isə yavaş
işləyir, ancaq az kod tələb edir. Borland virtual istifadə etməyi məsləhət görür.
Bu hələ hamısı deyil. Tutaq ki, məsələn qarajda divarlar boşdur, evdə isə onlara şəkil asmaq tələb
olunur. Bunu realizasiya etmək üçün OYP-də valideyni çağırmaq kmi rahat bir imkan var. Misala
baxaq.
Qarajda divar yaradan prosedur.
Başla
Divar yarat
Son
Evdə divar yaradan prosedur
Başla
Valideyn obyektini çağır
Divara şəkil as
Son
Qarajda divar yaratma prosedurunda divar yaradılır. Ev üçün də belə prosedur var. Amma ev
üçün varsa, deməli qaraj üçün olan artıqdır. Amma ev üçün yenidən divarı yaratmaqdansa, qarajın
prosedurunu çağırmaq kifayətdir, sonra isə şəkilləri asa bilərik.
İnkapsulyasiya
İnkapsulyasiya elə bir xassədir ki, ona əsasən müəyyən bloku (kodu) istifadə edən kəsə onun
necə realizasiya olunduğunu bilmək lazım deyil. Bu o deməkdir ki, məsələn siz maşın sürürsünüz,
amma onun ötürücü və hərəkətverən bloklarının necə qurulduğunu və necə işlədiyini bilmirsiniz.
Eləcə də sizin sinfi istifadə edən proqramçıya onun lazımi funksiyaları necə icra etdiyini bilməsi
vacib deyil. Sinfi hazırlayan zaman ümumiyətlə siz onu elə layihələndirməlisiniz ki, əsas işi görən
bütün metod və xassələr gizli qalsınlar.
Sinifləri hazırlayan zaman onların metod və xassələrini müxtəlf giriş hüquqları ilə elan
etməlisiniz. Əvvəlcədən qeyd edək ki, onlar azdır və bunlardır: publlic, private, protected və
published. Giriş deyəndə nə nəzərdə tutulur. Açıq sinif və xassələri digər siniflər görür.
Əgər siz proqram yazıb ona şifrləmə imkanı əlavə etmək istəyirsinizsə, onda şifrələmə
sinfinin bir nümunəsini yaradıb, onun ancaq açıq xassə və metodlarına giriş ala bilərsiniz. Sinfin
necə şifrələnməsi, hansı alqoritmin istifadəsini bilmək lazım deyil. Vacib olan odur ki, şifrələnmə
keyfiyyətli və etibarlı həyata keçirilsin. Açar və mətn göstərmək imkanı olsun ki, onların köməyilə
şifrələmə aparılsın və nəticə almaq imkanı olsun. Məhz bu 3 imkan mütləq açıq olmalıdır, qalanları
isə gizli qalmalıdır ki, sinif zədələnməsin. Sinfin dəyişənlərini heç vaxt açıq etməyin. Onlar gizli
qalmalıdır, əgər onlara təsir imkanı lazımdırsa, onda bunun üçün yaxşı olar ki, metod və ya xassələri
istifadə edəsiniz. Yəni dəyişəni oxumaq və dəyişmək üçün birbaşa təsir olmadan ancaq metodlar
istifadə olunmalıdır.
Mühazirə 4.
Deplhi proqramlaşdırma dilinin əsasları
Proqramlaşdırmaya aid əksər kitablarda təsvirə “Hello world” proqramı ilə başlayırlar. Bu ən
sadə misaldır, lakin onun üzərində Delphidə proqramlaşdıra prinsipini və layihənin strukturunu izah
etmək daha rahatdır. Beləliklə, bu proqramı yazaq və görək Delphi nə edir.
Yeni layihə yaradırıq: File => New=> VCL Forms Application. İndi isə layihə menecerinə
(Project Manager) baxaq. Şəkil 5.1.-də ağacın bütün budaqları görünür.
Şəkil 1. Yaradılmış proqramın Proyekt Meneceri
Bütün budaqları görmək üçün I elementi seçmək və <+> klavişini sıxmaq lazımdır. Bu ağacın
hər bölməsinə ətraflı nəzər salaq.
o
Project Group (ağacın başlığı) – layihələr qrupunun adı. Bir layihələr qrupunda bir neçə proqram
ola bilər. Əgər siz layihələr meneceri pəncərəsində Yeni (New) düyməsini sıxsaz və yeni bir
proqram yaratsaz, o mövcud layihələr qrupuna əlavə olunacaq.
o
Project1.exe – proqramın (layihənin) adı. Yeni proqramı yaradanda Delphi ona Project adı verir və
sıra nömrəsi əlavə edir.
o
Unit1.pas – modul. Poyekt modullardan ibarətdir. Proqramın hər bir pəncərəsi ayrıca modulda
yerləşir. biz isə ekranda görürük ki, bizim proqramın pənsərəsi var və o proqramın daxilindədir. .pas
genişlənməli fayllar modulun kodlarınnı özündə saxlayır. Faylın adı da modulun adı ilə eynidir.
o
Unit1.dfm – bu vizual formadır. O faylda eyni adla saxlanır, modul kimi lakin .dfm genişlənməsi ilə.
əvvəllər kodla vizual forma eyni səviiyədə saxlanırdı, lakn indi vizual hissəni aşağı səviyyəyə
keçiriblər.
Layihədə bir neçə proqram olarsa, onlardan ancaq biri aktiv olur və məhz onu Delphi mühitində
icra etmək olar. Aktiv layihə qalın qara hərflə olur. Aktivləşdirmək istədiyiniz üzərində sağ düyməni
sızıb Activate etmək lazımdır.
İndi biz ancaq bir proqramla işləyəcəyik. Buna görə də ancaq bir layihəni saxlayıb qalanlarını
silmək lazımdır. Onları siləndə onlar diskdə qalır, sadəcə layihədən silinir. Tam silmək istəyirsinizsə
oradan da silmək lazımdır.
İndi isə proqramı yadda saxlayaq. Bunun üçün əsas menyudan File => Save as seçirik. əvvəlcə
Delphi sizdən modulun adını soruşur. Susmaya görə bu Unit1.pas-dır. Onu MainModule ilə əvəz
edək. Save düyməsini sıxaq. Adda probel və ya Azərbaycan, Rus şrifti istiadə etmək olmaz (Delphi
9, 10- da olar). Yaxşı olar ki, bir proyektin bütün faylları eyni bir qovluqda saxlansın. İndi isə
proyektin adını verək: Helloworld yazaq və Save edək. Proyekt Hello world.dpr faylında saxlanır.
Misalı yenidən açmaq istəsəz məh bu faylı açmalısınız. .pas genişlənməli faylları açmaq lazım deyil.
Adları elə seçmək lazımdır ki, modulun məzmununu tam əks etdirsin. Proyektin adı proyektin icra
olunacaq faylının adı olacaq. Əgər Project1 adını saxlasaz, icra olunan fayl da Project1.exe olacaq.
Dostları ilə paylaş: |