82
82
MÜHAZİRƏ X: TURBO PASKAL DİLİNİN QRAFİK OPERATORLARI VƏ
ONLARDAN İSTİFADƏ QAYDALARI.
Plan:
1.
Qrafik recimə keçid.
2.
Qrafik recimdən istifadə qaydaları.
3.
Sadə həndəsi fiqurların qurulması qaydaları.
Qrafik recimə keçid.
Bütün alqoritmik dillərdə olduğu kimi Turbo
Paskal dilinin də proqram,
mətn və qrafik iş rejimləri mövcuddur. Qeyd edək ki, qrafik rejimin operator və
əmrləri ilə işləməzdən əvvəl həmin rejimə keçidi təmin etmək lazımdır. Bu
məqsədlə hər şeydən əvvəl standart modulların elanı
hissəsində yeni GRAPH
modulunu elan etmək tələb olunur. Proqram daxilində qrafik rejimə keçidi təmin
edəcək aşağıdakı prosedur və funksiyalardan istifadə edilir:
Qrafik rejimə keçid aşağıdakı kimi yerinə yetirilir. Əvvəlcə adapterin qrafik
rejimdə işləməsini təmi edən prosedur verilir. Bu prosedurun ümumi şəkli
aşağıdakı kimidir:
İNİTGRAPH (, , )
Burada,
drayver
- qrafik rejimin drayverinin tipini müəyyənləşdirən
İNTEGER
tipli dəyişəndir;
rejim
- qrafik adapterin iş rejimini müəyyən edən İNTEGER tipli
dəyişəndir;
yol-
drayver faylının yerləşdiyi yaddaş qurğusu və qovluğu göstərən
sətir tipli, yəni
STRİNG tipli dəyişəndir.
Drayveri müəyyənləşdirən sabitlər aşağıdakılardan biri ola bilər:
CONST
Detect=0; - tipin avtomatik müəyyən olunması;
CGA=1;
MCGA=2;
EGA=3;
EGA64=4;
EGAMono=5;
İBM8514=6;
HercMono=7;
ATT400=8;
VGA=9;
PC3270=10;
İstifadəçi göstərilən sabitlərdən istifadə etdiyi monitora uyğun olanı seçir və
yuxarıdakı prosedurda
< drayver >
əvəzinə yazır. İstifadəçi işinin asanlaşdırmaq
məqsədilə qrafik rejimin adapterinin tipini Detect=0 qəbul etmək məsləhət
görülür. Çünki bu halda drayverin tipi kompüter
tərəfindən avtomatik olaraq
müəyyən olunur.
83
83
Qeyd etmək lazımdır ki, hər bir qrafik adapter müxtəli rejimlərdə işləyə
bilər. Hər bir monitora uyğun olan rejimlər xüsusi sorğuda verilmişdir. Lakin
istifadəçi əgər qrafik adapterin müəyyən edilməsi üçün Detect=o
qəbul edibsə
sadəcə olaraq rejimin tam tipli, yəni İNTEGER tipli dəyişən olmasını verməsi
kifayət edər. Həmin dəyişən də yuxarıdakı prosedurdakı ,
əvəzinə
yazılır.
Drayverin yerləşdiyi qurğu və qovluq istifadəçi tərəfindən tapılmalıdır.
Adətən istifadə etdiyimiz kompüterlərdə bu drayver, yəni EGAVGA.BGİ faylı C:
qurğusunun BP qovluğunun BGİ altqovluğunda yerləşir. Yəni yuxarıdakı
prosedurda
< yol >
əvəzinə
‘C:\BP\BGI’
yazmaq lazımdır.
Bütün qeyd olunanlardan sonra qrafik rejimə keçid yerinə yetirilməlidir.
Keçidin düzfün olub olmamasını yoxlamaq
üşçün GRAPHRESULT standart
funksiyasının qaytardığı qiymət yoxlanılmalıdır. Əgər onun qaytardığı qiymət
grOK
və ya
“0”
olarsa, deməli, qrafik rejimə keçilib, əks halda,yəni başqa qiymət
alınarsa onda keçiddə baş verən səhv
GraphErrorMsg (dəyişən)
standart funksiyası
ilə müəyyən edilərək lazımi tədbir görülür. Burad,
dəyişən-
GRAPHRESULT
funksiyasının nəticəsinin mənimsədildiyi dəyişəndir.
Qrafik rejimdə iş qurtardıqdan sonra CLOSEGRAPH proseduru ilə
rejim
bağlanaraq ondan çıxılır. Əgər istifadəçi müvəqqəti olaraq, qrafik rejimdən
çıxıb mətn rejiminə keçmək istəyirsə onda sadəcə olaraq
RESTORECRTMODE standart prosedurunu verməlidir. İstifadəçi qrafik
adapterin yeni iş rejimini vermək istəyirsə onda SETGRAPHMODE (
>) prosedurundan istifadə edilir. Burada, rejim yeni təyin olunan rejimin
göstəricisidir.
Qrafik rejimdən istifadə qaydaları
İstifadəçi istifadə etdiyi monitorun qrafik rejimdə ekranının həm üfiqi, həm
də şaquli koordinatlarının maksimum sayını bilmək istəyirsə onda uyğun olaraq
GETMAXX və GETMAXY standart funksiyalarından istifadə edir. Belə ki, bu
funksiyalar uyğun şəkildə üfiqi və şaquli koordinatların maksimum sayını qaytarır.
Qeyd: Ekranda koordinat başlanğıcı yuxarı sol künc hesab edilir.
Qrafik rejimdə işləyərkən istifadəçiyə tez-tez lazım olan aşağıdakı standart
prosedurları verək:
1.
Kursorun nyeni mövqeyinin təyin edilməsi:
MOVETO (X, Y)
Burada, X və Y- İNTEGER tipli ifadələr olub uyğun olaraq üfiqi və şaquli
koordinatları gğstərir.
2.
Qrafik ekranın təmizlənməsi:
CLEARDEVİCE
3.
Ekranın tərəfləri nisbətini müəyyənləşdirməyə imkan verən X və Y
oxlarına uyğun iki WORD tipli ədəd qaytarır:
GETASPECTRATİO (X, Y)
Dostları ilə paylaş: