А. А. Медатов, М. З. Носиров, М. К


Download 392.5 Kb.
bet34/39
Sana20.12.2022
Hajmi392.5 Kb.
#1034416
1   ...   31   32   33   34   35   36   37   38   39
Bog'liq
Turbo Pascal услубий кулланма

CRT модули
СRT модулига қуйидаги процедура ва функциялар киради:


Clreol-курсор турган жойдан сатр охиригача бўлган матн ўчирилади.
Бичими: ClrEol;


Сlrscr-экранни тозалаш учун ишлатилади.
Бичими: ClrScr;


Delay- N миллисекундга дастур бажарилишини тўхтатади.
Бичими: Delay(N:word);


Delline- курсор турган сатр ўчирилади.
Бичими: DelLine;


Gotoxy- -курсорни X,Y координатага кўчиради.
Бичими: GotoXY(X,Y:byte);


Keypressed-клавиш босилса рост, босилмаса ёлгон қиймат қабул қилади.
Бичими: KeyPressed:boolean;


Nosound- динамик ишини тугатади.
Бичими: nosound;


Sound- динамикни ишга солиб, H герц частота билан товуш чиқаради.
Бичими: sound(H:word);


Readkey- клавишда кўрсатилган белгининг кодини беради.
Бичими: ReadKey:char;


Textbackground-фонга r га мос келган ранг беради.
Бичими: TextBackGround(r:byte);


Textcolor- ёзувга г ранг беради.
Бичими: TextColor(r:byte);


Textmode - матн режимини ўрнатади.
Бичими: TextMode(m:integer);


Wherex-курсор турган нуқтанинг сатр номерини аниқлайди.
Бичими: WhereX:byte;


Wherey-курсор турган нуқтанинг устун номерини аниқлайди.
Бичими: WhereY:byte;


Window- кўрсатилган координатали ойна ҳосил қилади.
Бичими: window(X1,Y1,X2,Y2:byte)

Маълумки, хозирги пайтда халқ хўжалигининг барча тармоқларида менюли дастурлар кенг қўлланилмокда. Бу дастурлар фойдаланувчиларга анча қулайликлар яратади. Шунинг учун қуйида CRT модулининг имкониятларидан фойдаланувчи MENU дастурсини тавсия этамиз:


program MENU;


uses dos,crt;
const
nmenu=6;
var
ch:char;
functionkey:boolean;
width,textкcolor,backкcolor,selectкtextкcolor,
selectкbackкcolor,menuкbackкcolor,screenкbackкcolor,
borderкbackкcolor,borderкcolor,wx,wy,dy,i,crm:integer;
butкstatus,xкcoord,yкcoord:integer;
leftкbutton,middleкbutton,rightкbutton:boolean;
strmenu:array[0..nmenu-1] of string [40];

procedure hideкcursor;


var
regs:registers;
begin
regs.ah:=1;
regs.ch:=$20;
regs.cl:=0;
regs.bh:=0;
intr($10,regs);
end;
procedure box(x1,y1,x2,y2:integer);
var i,j:integer;
begin
gotoxy(x1,y1);
for i:=x1 to x2-1 do write(#196);
gotoxy(x1,y2);
for i:=x1 to x2-1 do write(#196);
for i:=y1 to y2-1 do
begin
gotoxy(x1,i);
write(#179);
end;
for i:=y1 to y2-1 do
begin
gotoxy(x2,i);
write(#179);
end;
gotoxy(x1,y1);
write(#218);
gotoxy(x2,y1);
write(#191);
gotoxy(x2,y2);
write(#217);
gotoxy(x1,y2);
write(#192);
end;

procedure init;


begin
text_color:=black;
back_color:=3;
select_text_color:=white;
select_back_color:=lightred;
menu_back_color:=blue;
screen_back_color:=lightgray;
border_back_color:=blue;
border_color:=white;
dy:=2;
wx:=15;
wy:=5;
width:=25;
crm:=0;
strmenu[0]:=‘ Математика ‘;
strmenu[1]:=‘ Физика ‘;
strmenu[2]:=‘ Киме ‘;
strmenu[3]:=‘ Биология ‘;
strmenu[4]:=‘ Тарих ‘;
strmenu[5]:=‘ Филология ‘;
end;
procedure draw_menu;
var
i,j:integer;
begin
textbackground(screen_back_color);
clrscr;
hide_cursor;
textcolor(border_color);
textbackground(border_back_color);
box(wx-2,wy-2,wxwidth,wy(nmenu-1)*dy2);
textbackground(menu_back_color);
i:=wx-1;
for j:=wy-1 to wy(nmenu-1)*dy1 do
for i:=wx-1 to wxwidth-1 do;
begin
gotoxy(i,j);
write(‘‘);
end;
for i:=0 to nmenu-1 do
begin
if iкcrm then
begin
textbackground(select_back_color);
textcolor(select_text_color);
end
else
begin

textbackground(back_color);


textcolor(text_color);
end;
gotoxy(wx,wyi*dy);
write(strmenu[i]);
end;
end;

procedure New_Menu(old,sel:integer);


begin
textbackground(select_back_color);
textcolor(select_text_color);
gotoxy(wx,wysel*dy);
write(strmenu[sel]);
textbackground(back_color);
textcolor(text_color);
gotoxy(wx,wyold*dy);
write(strmenu[old]);
end;

procedure up;


var
old:integer;
begin
old:=crm;
crm:=crm-1;
if crmк-1 then crm:=nmenu-1;
new_menu(old,crm);
end;

procedure down;


var
old:integer;
begin
old:=crm;
crm:=crmК1;
if crm_nmenu then crm:=0;
new_menu(old,crm);
end;

procedure do_select(n:integer);


begin
if crm=0 then sound(100);delay(300);nosound;
end;

procedure do_command(key:char;functionkey:boolean);


begin
if (not functionkey) and (upcase(key)к#13)
then do_select(crm);
if functionkey then
case upcase(key) of
#72:up;
#80:down;
end;
end;
begin
init;
drawmenu;
{Асосий цикл}
repeat
if keypressed then begin
ch:=readkey;
if chк#0 then
begin
functionkey:=true;
ch:=readkey;
end
else
functionkey:=False;
docommand(ch,functionkey);
end;
until (chк#27);
end.


Мустахкамлаш учун саволлар:
1. CRT модулининг асосий вазифаси нима.
2. CRT модулининг асосий процедуралари.
3. CRT модулига мисол келтиринг.


Таянч тушунчалар: Сlreol, СlrScr, Delay, DelLine, GotoXY, KeyPressed, Readkey, Sound, TextColor

Адабиётлар [1],[2],[3],[7].





Download 392.5 Kb.

Do'stlaringiz bilan baham:
1   ...   31   32   33   34   35   36   37   38   39




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling