Графикаси касб-ҳунар коллежлари учун ўқув қулланма


Uses Graph,F_GrText;  Var



Download 5,43 Mb.
Pdf ko'rish
bet104/106
Sana22.02.2022
Hajmi5,43 Mb.
#92949
1   ...   98   99   100   101   102   103   104   105   106
Bog'liq
kompyuter grafikasi

Uses Graph,F_GrText; 
Var 
D,R:Integer; 
F:File; 
Font:Pointer; 
Begin 
{График режимни инициализациялаймиз} 
D:=Detect; 
InitGraph(D,R,‘‘); 
{Файлни очамиз} 
Assign(F,‘8x16.fnt‘); 
Reset(f,1); 
{Динамик хотирани олиб қўямиз} 
GetMem(Font,FileSize(F)); 
{Файлни хотирага ўқиб оламиз} 


190 
BlockRead(F,Font^,FileSize(F)); 
Close(F); 
{Шрифтни рўйхатга оламиз} 
SetFont(font,8,16); 
{Киритиш/чиқаришнинг ностандарт драйверларини қўямиз} 
GraphWriteOn; 
… 
Процедуранинг бажарилиши давомида матнли киритиш-чиқариш учун 
экранни рухсат этиш имконияти қайта ҳисобланиши амалга оширилади. Бу 
мақсад учун ички ўзгарувчи MaxChar (график экранда матнли қаторнинг 
максимал узунлиги) ва MaxLine (матнли қаторларнинг максимал сони) 
ҳисобланади. Ҳисоблашлар учун GetMaxX ва GetMaxY стандарт 
функциялари қайтарадиган экраннинг график рухсат этиш имконияти 
ишлатилади, шунинг учун процедурага мурожаатдан олдин адаптер 
(мослагичнинг) график иш режими ўрнатилган бўлиши керак. Процедура 
бажарилгандан сўнг олдин ўрнатилган матнли ойна ман этилади (агар у 
Window процедураси ѐрдамида ўрнатилган бўлса) курсор эса экраннинг 
юқори чап бурчагига ўтказилади. Рамзлар ва тагрангнинг жорий ранглари 
ўзгармайди.
Таъкидлаш лозимки, рамзларнинг горизонтал кенглигини берувчи Х 
параметр фақат MaxChar ни аниқлаш учун ишлатилади. Экранга доимий 
чиқаришда ихтиѐрий рамзнинг кенглиги 8 пикселга тенг ҳисобланади (яъни 
рамзларнинг нуқтали образи 8xH бит ҳажмли матрица орқали ҳисобланади). 
Бундан ташқари, агар сиз Х ни 8 га тенг эмас деб ўрнатсайиз бу матнли ойна 
чегараларига ва рамзларнинг киритилишига таъсир этади. 
SetWindow процедураси ойнани ўрнатади, тозалайди ва рамка чизади.
Procedure 
SetWindow(x1,y1,x2,y2,Border:Byte; 
Header:String;Clip,Build,Play:Boolean); 
Бу ерда x1…y2 – ойнанинг матнли координаталари; Border – рамка тури 
(F_GrText модули XXXXBorder константаларига мос); Header – ойна 
сарлавҳаси; Clip –қирқиш белгиси; Build параметри ойнани «яланг очиш» ни 
бошқариш параметри; Play товуш кузатувини беради.
Ойнанинг юқори қисмида (Y1 қаторида) Header сарлавҳа чиқарилади; 
агар сарлавҳа узунлиги x2-x1-2 дан ошса унинг ортиқча рамзлари олиб 
ташланади; агар Header=‘‘ бўлса сарлавҳа чиқарилмайди. Clip=True бўлганда 
янги тузилган ойна чегаралари рамкани ҳисобга олмасдан x1…y2 тўртбурчак 
ички қисмига мос келади (яъни x1=x1+1,y1=y1+1, x2=x2+1, y2=y2+1), чунки 
ойнада матннинг чиқарилиши уни бузиб юбормаслиги сабаб. Агар Build=True 
бўлса, ҳудудларини аста-секин тўлдириб ойна «яланг очиш». Бунда агар 
Play=True бўлса, ойнанинг очилиш жараѐни товуш сигнали билан кузатилади. 
Scrolling процедураси. Берилган қатор сони бўйича юқори ѐки пастга 
ойнани силжитади. 
Procedure Scrolling(N:integer); 
Бу ерда N-ойна силжиши керак бўлган қаторлар сони (бунда N<0 да 
ойна пастга силжийди) 


191 
Агар N нинг абсолют қиймати ойна баландлигидан ошса ѐки N=0 
бўлса, ойна тўлик тозаланади. Силжишдан сўнг курсор ўрни ўзгармайди. 
TextBackGround процедураси. Рамзлар учун тагранг ўрнатилади. 
Procedure TextBackground (Color:Byte); 
Color параметри сифатида Graph модулида аниқланган ранглар 
константаси мос ишлатилиши мумкин. Шуни айтиш керакки, фон рангини 0 
раками билан ўрнатилиши рамзлар мавжуд кўриниш устига қўйилишини 
билдиради, яъни тагранг пикселлари ўзгармайди. Бошқа ихтиѐрий рангни 
ўрнатилиши тагранг пикселларини керакли ранг билан бўялишига олиб 
келади, яъни чиқариш мавжуд график кўринишни йўқотади. Тагранги учун 
қорамтир ҳамда очиқ турдаги ранглар ишлатилиши мумкин.
SetColor процедураси. Рамзлар рангини ўрнатади 
Procedure SetColor(Color:Byte); 
TextCooX функцияси. Берилган график координатада энг яқин матнли 
горизонтал координатани қайтаради.
Function TextCooX(X:Integer):Byte; 
Агар берилган график координата ойна горизонтал чегарасидан чиқиб 
кетса, функция 0 қиймат қайтаради.
TextCooY функцияси. Берилган график координатада энг яқин матнли 
вертикал координатани қайтаради. 
Function TextCooY(Y:Integer):Byte; 
Агар берилган график координата ойна вертикал чегарасидан чиқиб 
кетса, функция 0 қайтаради.
WhereX функцияси. Горизонтал ҳолат бўйича матнли курсорни жорий 
ҳолатини қайтаради.
Function WhereX:Byte; 
Қайтариладиган координата ойнанинг чегарасига нисбатан аниқланади. 
(агар ойна ўрнатилмаган бўлса, экран) 
WhereY функцияси. Горизонтал ҳолат бўйича матнли курсорнинг 
жорий ҳолатини қайтаради.
Function WhereY:Byte; 
WhereY функцияси. Горизонтал ҳолат бўйича матнли курсорнинг 
жорий ҳолатини қайтаради.
Window процедураси матнли ойнани ўрнатади.
Procedure Window(x1,y1,x2,y2:Byte); 
Бу ерда x1,y1 – матнли координатанинг юқори чап бурчаги, x2,y2 эса 
ойнанинг қуйи ўнг бурчаги. Координаталар ойнанинг чегараларига нисбатан 
аниқланади.
Автоматик сижитишда курсор ойнанинг қуйи чегарасидан чиқиб 
кетгандан ташқари барча ҳолатларда экранда ўрнатилган ойна матнли 
режимдаги каби ўзини тутади.
Агар навбатдаги рамз ойнанинг ўнг қуйи бурчагига чиқарилиши керак 
бўлса, силжитиш ўрнига чиқариш босиб кетилади.


192 
RegisterCHRFile функцияси. Векторли шрифтни рўйхатдан ўтказади ва 
OutString процедурасида кейинги ишлатишлар учун идентификацион 
номерини қайтаради.
Function RegisterCHRFile(FileName:String):Integer; 
Бу ерда FileName- рўйхатдан ўтадиган векторли шрифтнинг CHR 
форматли файлининг номи. 
Шрифтни рўйхатдан ўтказиш файлни сарлавҳасини текшириш ва 
хотирага суришишлар жадвалини ва кенгликлар жадвалини юклашдан 
иборат. Рўйхатдан ўтказиш омадли якунига етганда фукция мусбат сон-
шрифтнинг идентификацион номерини қайтаради, қайсики у OutString 
процедурасига мурожаат этганда унинг параметрларидан бири сифатида 
ишлатилади. Нормал бўлмаган ҳолатлар аниқланаганда функция манфий 
қиймат қайтаради. Бу қийматлар қуйидагини билдиради: 
-1-файлга мурожаатда хатолик (файлни очиб бўлмайди ѐки ундан 
маълумотларни ўқишда хатолик юз беради) 
-2-файл таркиби BGI-шрифт форматига мос эмас (файл сарлавҳасида 
хатолик ѐки шрифт параметрларига файл узунлиги жавоб бермайди) 
-3-шрифт ҳақида маълумотни жойлаштириш учун хотира мавжуд эмас 
(бир шрифтни рўйхатдан ўтказиш учун 2 Кб дан ортиқрок динамик хотира 
керак бўлади) 
RegisterCHRFont функцияси. Векторли шрифтни рўйхатдан ўтказади ва
Outstring 
процедурасида 
кейинчалик 
ишлатиш 
мақсадида 
уни 
идентификацион номерини қайтаради. 
Function RegisterCHRFont (Font:Pointer):Integer; 
Бу ерда Font-олдин CHR-File ўқиб олинган тезкор хотира майдонини 
манзили. 
Бу функция RegisterCHRFont функциясига ўхшайди. Фақат бир 
фарқи, унга мурожаат этилишидан олдин шрифт файлини шахсий 
компьютернинг тезкор хотирасига ўқиб олиш керак. Бу функцияни 
RegisterCHRFile функцияси ўрнига ишлатилиши бизга иккита ютуқни олиб 
келади. Биринчидан, OutString процедураси билан чиқариш тезрок бўлади, 
чунки векторли буйруқларни ўқиш учун дискка мурожаат бўлмайди. 
Иккинчидан, сизнинг дастурингиз Graph модулида қўлланилгани каби ички 
шрифтлар сингари компиляция бўлиши мумкин.Мисол, Trip.chr файлини 
binobj trip.chrtrip.obj trip буйруғи билан ўтказишдан сўнг қуйидаги дастурни 
ишлатиш мумкин: 

Download 5,43 Mb.

Do'stlaringiz bilan baham:
1   ...   98   99   100   101   102   103   104   105   106




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish