Программа денесі(операторлар тізбегі)



бет72/163
Дата07.02.2022
өлшемі4,26 Mb.
#94523
түріПрограмма
1   ...   68   69   70   71   72   73   74   75   ...   163
Байланысты:
cda6b05d-8cb5-11e3-bf6e-f6d299da70eeУММ ПР1

Тұрақтының атауы

Код

Шешім

Палитра

Беттерді қолдау

CGA драйвері

CGAC0

0

320x200

C0

1

CGAC1

1

320x200

C1

1

CGAC2

2

320x200

C2

1

CGAC3

3

320x200

C3

1

CGAHi

4

640x200

2 түс

1

MCGA драйвері

MCGAC0

0

320x200

C0

1

MCGAC1

1

320x200

C1

1

MCGAC2

2

320x200

C2

1

MCGAC3

3

320x200

C3

1

MCGAMed

4

640x480

2 түс

1

MCGAHi

5

640x480

2 түс

1

EGA драйвері

EGALo

0

640x200

16 түс

4

EGAHi

1

640x350

16 түс

2

EGA64 драйвері

EGA64 Lo

0

640x200

16 түс

1

EGA64Hi

1

640x350

4 түс

1

EGA-MONO драйвері

EGAMonoHi

3

640x350

2 түс

1

EGAMonoHi

3

640x350

2 түс

2

HERC драйвері

HERCMonoHi

0

720x348

2 түс

2

ATT400 драйвері

ATT400C0

0

320x200

C0

1

ATT400C1

1

320x200

C1

1

ATT400C2

2

320x200

C2

1

ATT400C3

3

320x200

C3

1

ATT400CMed

4

640x200

2 түс

1

ATT400CHi

5

640x400

2 түс

1

VGA драйвері

VGALo

0

640x200

16 түс

2

VGAMed

1

640x350

16 түс

2

VGAHi

2

640x480

16 түс

1

PC3270 драйвері

PC3270Hi

0

720X350

2 түс

1

IBM8514 драйвері

IBM8514Lo

0

640x480

256 түс

1

IBM8514Hi

0

1024x768

256 түс

1

Кестенің 4-ші бағанында түстер туралы ақпарат көрсетілген.


Графикалық амалдың қателігі


Графикалық амалдарды орындау кезінде әртүрлі қателіктер болуы мүмкін (мысалы, видеоадаптерді анықтай немесе драйверді таба алмады). Егер қателік болса, оның сипатын анықтауға GraphResult функциясы көмектеседі.
GraphResult функциясы соңғы орындалған графикалық амал қателігінің кодын береді. Тақырыбы:
Function GraphResult: Integer;
Қателік кодын Graph модулінің келесі процедуралары мен функциялары орнатады:
Bar, Bar3D, ClearViewPort, CloseGraph, Detect Graph, DrawPoly, FillPoly, FloodFill, Get GraphMode, ImageSize, InitGraph, InstallUserDriver, InstallUserFont, PieSlice, RegisterBGIdriver, RegisterBGIfont, SetAllPalette, SetFillPatterrn, SetFilllStyle, SetGraphBufSize, SetGraphMode, SetLineStyle, SetPalette, SetTextJustify, SetTextStyle.
GraphResult функциясы қайтаратын мәндер Graph модулінде жарияланған тұрақтылармен анықталады.
Графикалық амалдардың қателіктерінің тұрақтылары мен кодтары 3-кестеде көрсетілген.
3-кесте

Тұрақты атауы

Код

Текстік хабарлама

grOk

0

Қатесіз

grNoInitGraph

-1

Графикалық режим инициализацияланбаған

grNotDetected

-2

Адаптер типін анықтай алмады

grFileNotFound

-3

Драйверлі файл табылмады

grInvalidDriver

-4

Табылған файл сәйкес драйверден тұрмайды

GrNoLoadMem

-5

Драйверді жүктеуге жады жеткіліксіз

grNoScanMem

-6

Аймақтарды қарауға жады жеткіліксіз

grNoFloodMem

-7

Аймақтарды толтыру үшін жады жеткіліксіз

grFontNotFound

-8

Қаріптері бар файл табылмады

grNoFontMem

-9

Қаріпті жүктеуге жады жеткіліксіз

grInvalidMode

-10

Таңдалынған драйверге мүмкін емес режим

grError

-11

Жалпы қателік

grIOerror

-12

Енгізу-шығару қателігі

grInvalidFont

-13

Қаріптің дұрыс емес форматы

grInvalidFontNum

-14

Қаріптің дұрыс емес номері

GraphResult функциясын шақырғанда графикалық амалдың қателігінің кодын шақырады, және де бұл кезде жүйеде қателік коды 0-ге (grOk) орнатылады. Егер соңынан GraphResult функциясын қайта шақырса, онда осы нәтиже (grOk) қайтарылады.
GraphResult функциясының нәтижесінен қателік сипатын ұғу қиын болады. Сондықтан Turbo Pascal-да GraphErrorMsg функциясы қарастырылған. Оның параметрі ретінде GraphResult функциясы қайтарған код көрсетіліп, нәтижесі сәйкес қателік туралы экранға шығарылатын хабарлама болып табылады.
GraphErrorMsg функциясы оның сандық коды бойынша қателік туралы хабарлама мәтінін (ағылшын тілінде) қайтарады. Тақырыбы:
Function GraphErrorMsg(ErrorCode:Integer):string;
Мұндағы, ErrorCode - GraphResult функциясы қайтарған қателік коды.
Төмендегі мысалдағы программа барлық қателіктердің сандық кодтарын және оларға сәйкес хабарламаларды экранға шығарады.
Program GrErMsg;
Uses Graph;
Var i:integer;
Begin
For i:=0 to 14 do
Writeln(-i:3, ‘=’, GraphErrorMsg(-i));
End.


Қолданылатын графикалық режим туралы ақпарат
Осы мезетте қандай графикалық режим (DetectGraph процедурасы арқылы таңдалынған) қолданылып тұр? Қандай графикалық драйвер қолданылып тұр? Осы графикалық адаптер үшін қолданылған драйвердің қай графикалық режимін мейлінше қолдануға болады. Графикалық программаларды құру кезінде көбінесе осындай сұрақтарға жауапты білу қажет болады. Осы мәліметтерді анықтауға GetModeName, GetDriverName, GetMaxMode процедуралары көмектеседі.
GetModeName функциясы графикалық режим қолданатын тұрақтының атауын қайтарады. Тақырыбы:
Function GetModeName(ModeNumber:Integer):string;
Мұндағы ModeNumber – графикалық режимнің коды.
GetDriverName функциясы осы мезетте драйверлер қолданып тұрған файлдың атауын (кеңейтілусіз) көрсетеді (яғни, .BGI-файлдар). Тақырыбы:
Function GetDriverName:string;
GetMaxMode функциясы ең мүмкін графикалық режимнің кодын береді. Тақырыбы:
Function GetMaxMode: Integer;
GetMaxMode функциясы осы қолданылған адаптер жұмыс істей алатын ең мүмкін графикалық режимнің (жүктелген графикалық режимнің) кодын анықтауға мүмкіндік береді.
Төмендегі мысалдан GetModeName, GetDriverName, GetMaxMode функциялары қолданылған программаны көресіздер:
Program ModDrive;
Uses graph;
Var i,j,k,Err:integer;
Begin
I:=Detect;
Initgraph(i,j,’ ‘);
Err:=GraphResult;
If Err<>grOk then
Writeln(GraphErrorMsg(Err))
Else
For k:=0 to GetMaxMode do
Begin
Writeln(‘драйвер:’, GetDriverName, ‘; Режим: ‘, GetModeName(k));
End;
Readln;
CloseGraph;
End.
Бұл программада графикалық режимге өтуді келесі операторлар жүзеге асырады:
I:=Detect;
Initgraph(i,j,’ ‘);
Графикалық режимге өтуде қателік жіберілгенін тексеру келесі түрде жүзеге асырылады:
Err:=GraphResult;
If Err<>grOk then
Writeln(GraphErrorMsg(Err))
Else...
Мұндай тексеру графикалық режим қолданылатын әрбір программада қарастырылу керек (GraphResult функциясы дәл осыған арналған).
Әрі қарай GetModeName, GetDriverName және GetMaxMode функцияларының көмегімен қажетті ақпарат анықталып (драйвер файлының атауы және мүмкін графикалық режимдер тізімі), экранға шығарылады.
Мұндай программаны іске қосқаннан кейін графикалық режим қосылып, жұмыс нәтижелері графикалық экранға шығарылады. Бұл нәтижелерді көру үшін ең дұрысы программаға параметрсіз Readln операторын қосқан дұрыс. Нәтижесінде программа пернетақтадан енгізуді тосып, экрандағы бейнені көруге мүмкіндік бере отырып, жұмысты тоқтата тұрады. Программа жұмысын жалғастыру үшін пернесін басу жеткілікті.
Ең соңында графикалық режимдегі видеоадаптердің жұмысын аяқтайтын CloseGraph процедурасы шақырылады.


Графикалық драйверлер режимі
Алдыңғы тақырыпта қолданылатын графикалық режимдер және графикалық драйверлер туралы қажетті ақпаратты анықтау қажеттігі туралы сөз болды. Осындай есепті GetModeRange процедурасы орындайды. Ол берілген драйвер үшін мүмкін графикалық режимдер туралы ақпаратты береді.
GetModeRange процедурасы көрсетілген графикалық драйвер үшін мүмкін графикалық режимдердің кодтарының диапазонын береді. Тақырыбы:
Procedure GetModeRange(Driver:Integer; var MinMode, MaxMode:Integer);
Мұндағы Driver – берілген графикалық драйвер коды; MinMode -«ең кіші» режим коды; MaxMode – шектік режим коды.
Егер Driver – параметрінің мәні қате болса, онда MinMode және MaxMode айнымалылары -1 мәнін қайтарады.
GetModeRange процедурасын қолданар алдында графикалық режимге өту міндетті емес.
Төмендегі мысалдан GetModeRange процедурасын қолдануды көруге болады:
Program ModeRange;
Uses Graph;
Const
D:array[1..11] of String[8]=
(‘CGA ‘,’MCGA ‘, ‘EGA ‘,’EGA64 ‘, ‘EGAMono’, ‘IBM8514 ‘,’HercMono ‘, ‘ATT400 ‘, ‘VGA ‘,’PC3270 ‘,’ERROR ‘);
Var i,j,k:integer;
Begin
Writeln;
Writeln(‘Driver’, ‘MinMode’:11, ‘MaxMode’:10);
Writeln(‘---------------------------------------------’);
For i:=1 to 11 do
Begin
GetModeRange(I,j,k);
Writeln(d[i],j:6,k:10)
End;
End.

Программа нәтижесі:



Бұл программада денесінде GetModeRange процедурасы шақырылған цикл ұйымдастырылған, және де цикл параметрінің мәні процедураға оның Driver – параметрінің мәні ретінде беріледі. Осы процедура берген минималды жәнен максималды режимдер мәндері әрбір драйвер үшін экранға жол түрінде беріледі. Нәтижесінде мәндер кестесі жасалады. Бұл кестені анығырақ ету үшін программада тұрақтылар массиві жарияланды, оның элементтері драйверлердің әріптік белгіленуі болып табылатын string типті мәндер. Бұл белгілеулер кестенің бірінші бағанында көрсетілген.
GetModeRange процедурасының драйвер кодының мүмкін емес мәніне қалай жауап қататынын тексеру үшін цикл саны 11-ге дейін көбейтілді (1..10-драйверлердің мүмкін кодтары). Нәтижесінде мүмкін емес мән (11) үшін GetModeRange процедурасы MinMode және MaxMode параметрлері үшін -1 мәнін берді.




Достарыңызбен бөлісу:
1   ...   68   69   70   71   72   73   74   75   ...   163




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет