Стандарт модуллар. Фойдаланувчи яратадиган модуллардан ташқари ТП стандарт модулларга эга. Булар System, Dos, Printer, Graph, Overlay ва бошқа модуллар. Бу модуллар Turbo.tpl файлида сақланади. System модули барча программаларга автоматик равишда қўшилади.
CRT модули. CRT аббревиатураси "Электрон нур трубкаси" мазмунини билдиради. Ҳақиқатдан ҳам, CRT модулида матн маълумотни экранга чиқариш, экран дарчаларини бошқариш, экрандаги белгиларни ва курсорни бошқаришнинг махсус процедура ва функциялари аниқланган. Бу модулдаги процедура ва функциялар коди унча катта бўлмасдан-3 Кб ташкил қилади ва у TURBO.TPL-системавий кутубхона таркибига киради.
Қуйида CRT модулига кирувчи асосий процедура ва функцияларни келтирамиз:
Window(X1,Y1,X2,Y2:byte)-экранда жорий дарчани аниқлаш. Window процедураси бажарилгандан кейин экран устида бажариладиган барча амаллар экраннинг X1, Y1, X2, Y2 координаталари билан берилган қисмига тааллуқли бўлади. Сатр ва устунлар ҳисоби (курсорни жойлаштириш учун) янги жорий дарча координатасига нисбатан аниқланади ва (1,1) координатали янги дарчанинг чап юқори бурчагини кўрсатади. Экранинг дарчадан ташқари қисми программанинг таъсир доирасидан ташқарида бўлади.
Шуни таъкидлаш керакки, Window процедураси чақирилганда координаталар "абсолют" қийматида, яъни экраннинг реал координаталари бўйича берилади (охирги матн дарчаси координатаси бўйича эмас).
Матн дарчаларига мисол:
Program Windows; { матнли ойна намойиши }
Uses CRT; { CRT модули ишлатилаяпти }
Var
i:byte; { for циклининг параметри }
BEGIN
TextAttr:White16*Black; { ранг - оқ қорада }
ClrScr;
for i:1 to 112 do
Write('* тўлиқ экран '); { асосий экранга чиқариш }
repeat
TextAttr:White16*Red; { ранг - оқ қизилда }
Window (5, 5, 20,15); { 1-ойна }
for i:1 to 120 do
Write('* 1-ойна '); { шу ойнага матн чиқариш }
ClrScr; { 1- ойнани тозалаш }
TextAttr:White16*Blue; { ранг-оқ кўкда }
Window (40, 10, 55,20); { 2-ойна }
for i:1 to 120 do
Write('* 2-Ойна '); { шу ойнага матн чиқариш }
ClrScr; { 2- ойнани тозалаш }
until KeyPressed; { тугмани босгунча цикл }
END.
Жорий матн дарчасининг координаталарини сўраш учун иккита махсус система (тизим) ўзгарувчилари-WindMax ва WindMin аниқланган бўлиб, улар устида жорий дарча координаталарининг кодлаштирилган қийматини сақлайди. Бу қийматларнинг махсус функциялари LO (кичик байт) HI (катта байт) орқали аниқлаш мумкин:
X1:LO(WindMin)1; X2:LO(WindMax)1;
Y1:HI(WindMax)1; Y2:HI(WindMax)1;
CLRSCR процедураси. Бу процедура жорий матн дарчасини тозалайди, яъни ўрнатилган фон ранги билан "бўяйди". Масалан:
TextBackGround(Blue); Clrscr;
бажарилганда экран мовий ранга бўялади ва курсор дарчанинг (1,1) жойига ўрнатилади.
GOTOXY(X,Y:byte) процедураси. Бу процедура ёрдамида курсорни жорий матн дарчасининг X устун ва Y сатр кесишувидаги жойга ўрнатилади. Агар X ва Y қийматлари жорий дарча чегарасидан чиқадиган бўлса, ҳеч қандай амал бўлмайди.
InsLine ва DelLine процедуралари. Бу процедуралар сатрлар билан ишлайди. Улар бутун экран ёки унинг бир қисмидаги (матн дарчасидан) сатрларни пастга ва юқорига ҳаракатни амалга оширади. InsLine курсор турган жойда янги сатр ҳосил қилади, олдинги ва пастдаги сатрларни бир қатор пастга суради, охирги сатр экрандан йўқолади. DelLine процедураси курсор турган қаторни ўчиради ва пастдаги сатрларни юқорига бир қатор "кўтаради".
InsLine ва DelLine процедуралари ёрдамида экранда сатр "ҳаракатини" амалга ошириш мумкин.
Uses CRT; {InsLineDelLine процедурасини қўллашга мисол}
Var
i, n:integer; {цикл учун ўзгарувчилар}
BEGIN
ClrScr;
GotoXY(1, 2*7 ) { матн абзацининг боши }
for i:1 to 7 do { абзацга 7 та сатр чиқариш }
Writeln( 'InsDel Line' );
GotoXY( 1, 1 ); { курсорни абзацдан чиқариш}
repeat { цикл: }
for i:1 to 7 do Delline; {абзацни 7 та сатрга кўтариш}
for i:1 to 7 do InsLine; { ва 7 та сатрга пастга суриш }
until KeyPressed; { қандайдир тугма босилмагунча}
END.
Do'stlaringiz bilan baham: |