Matn darchalariga misol:
Program Windows; { matnli oyna namoyishi }
Uses CRT; { CRT moduli ishlatilayapti }
Var
i:byte; { for siklining parametri }
BEGIN
TextAttr:White16*Black; { rang - oq qorada }
ClrScr;
for i:1 to 112 do
Write('* to‘liq ekran '); { asosiy ekranga chiqarish }
repeat
TextAttr:White16*Red; { rang - oq qizilda }
Window (5, 5, 20,15); { 1-oyna }
for i:1 to 120 do
Write('* 1-oyna '); { shu oynaga matn chiqarish }
ClrScr; { 1- oynani tozalash }
TextAttr:White16*Blue; { rang-oq ko‘kda }
Window (40, 10, 55,20); { 2-oyna }
for i:1 to 120 do
Write('* 2-Oyna '); { shu oynaga matn chiqarish }
ClrScr; { 2- oynani tozalash }
until KeyPressed; { tugmani bosguncha sikl }
END.
Joriy matn darchasining koordinatalarini so‘rash uchun ikkita maxsus sistema (tizim) o‘zgaruvchilari-WindMax va WindMin aniqlangan bo‘lib, ular ustida joriy darcha koordinatalarining kodlashtirilgan qiymatini saqlaydi. Bu qiymatlarning maxsus funksiyalari LO (kichik bayt) HI (katta bayt) orqali aniqlash mumkin:
X1:LO(WindMin)1; X2:LO(WindMax)1;
Y1:HI(WindMax)1; Y2:HI(WindMax)1;
CLRSCR protsedurasi. Bu protsedura joriy matn darchasini tozalaydi, ya’ni o‘rnatilgan fon rangi bilan "bo‘yaydi". Masalan:
TextBackGround(Blue); Clrscr;
bajarilganda ekran moviy ranga bo‘yaladi va kursor darchaning (1,1) joyiga o‘rnatiladi.
GOTOXY(X,Y:byte) protsedurasi. Bu protsedura yordamida kursorni joriy matn darchasining X ustun va Y satr kesishuvidagi joyga o‘rnatiladi. Agar X va Y qiymatlari joriy darcha chegarasidan chiqadigan bo‘lsa, hech qanday amal bo‘lmaydi.
InsLine va DelLine protseduralari. Bu protseduralar satrlar bilan ishlaydi. Ular butun ekran yoki uning bir qismidagi (matn darchasidan) satrlarni pastga va yuqoriga harakatni amalga oshiradi. InsLine kursor turgan joyda yangi satr hosil qiladi, oldingi va pastdagi satrlarni bir qator pastga suradi, oxirgi satr ekrandan yo‘qoladi. DelLine protsedurasi kursor turgan qatorni o‘chiradi va pastdagi satrlarni yuqoriga bir qator "ko‘taradi".
InsLine va DelLine protseduralari yordamida ekranda satr "harakatini" amalga oshirish mumkin.
Uses CRT; {InsLineDelLine protsedurasini qo‘llashga misol}
Var
i, n:integer; {sikl uchun o‘zgaruvchilar}
BEGIN
ClrScr;
GotoXY(1, 2*7 ) { matn abzasining boshi }
for i:1 to 7 do { abzasga 7 ta satr chiqarish }
Writeln( 'InsDel Line' );
GotoXY( 1, 1 ); { kursorni abzasdan chiqarish}
repeat { sikl: }
for i:1 to 7 do Delline; {abzasni 7 ta satrga ko‘tarish}
for i:1 to 7 do InsLine; { va 7 ta satrga pastga surish }
until KeyPressed; { qandaydir tugma bosilmaguncha}
END.
TextColor(c:byte) va TextBackGround(c:byte) protseduralari mos ravishda belgi va fon ranglarini aniqlaydi. Quyidagi jadvalda belgi va fon rangini aniqlaydigan TP o‘zgarmaslari keltirilgan
Do'stlaringiz bilan baham: |