А. А. Медатов, М. З. Носиров, М. К
Download 392.5 Kb.
|
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,wxwidth,wy(nmenu-1)*dy2); textbackground(menu_back_color); i:=wx-1; for j:=wy-1 to wy(nmenu-1)*dy1 do for i:=wx-1 to wxwidth-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,wyi*dy); write(strmenu[i]); end; end; procedure New_Menu(old,sel:integer); begin textbackground(select_back_color); textcolor(select_text_color); gotoxy(wx,wysel*dy); write(strmenu[sel]); textbackground(back_color); textcolor(text_color); gotoxy(wx,wyold*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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling