Procedure SetAspectRatio(X,Y: Word);
мұндағы X, Y – жақтаулардың тағайындалатын қатынасы.
176
Келесі программа, экран жақтауларының қатынасы əртүрлі 20 дөңгелек салады (7.3-сурет).
7.3-сурет. Экран жақтауларының қатынасы əртүрлі дөңгелектер
Uses Graph,CRT;
const
R=.50;
dx=1000;
var
d,m,e,k: Integer;
Xasp,Yasp: Word;
begin
d:=Detect;
InitGraph(d, m,.’’);
e:=GraphResult;
if e <> grOk then WriteLn(GraphErrorMsg(e))
else
begin
GetAspectRatio(Xasp, Yasp); for k:=0 to 20 do
begin
SetAspectRatio(Xasp+k*dx,Yasp);
Circle(GetMaxX div 2,GetMaxY div 2,R)
end;
if ReadKey=#0 then k:= ord(ReadKey); CloseGraph
end
end.
SetActivePage процедурасы бейнежадының көрсетілген па-рағын екпінді етеді. Процедура тақырыбы:
Procedure SetActivePage(PageNum: Word); Мұндағы PageNum – парақ нөмірі.
Процедура көппарақты жұмысты қолдайтын адаптерлермен (EGA, VGA жəне т.с.с.) жұмыс істейді. Нақты түрде, процедура графикалық шығарылымды бейнежадының басқа ауданына жібереді, алайда мəтінді Write/WriteLn операторларының көме-гімен тек осы мезетте көрініп тұрған парақта шығаруға болады (екпінді терезе көрінбеуі мүмкін). Парақтар нөмірі нөлден бас-талады.
SetVisualPage процедурасы нөмірі берілген парақты көрінетін етеді. Процедура тақырыбы:
Procedure SetVisualPage(PageNum: Word); мұндағы PageNum – парақ нөмірі.
Процедура көппарақты жұмысты қолдайтын адаптерлермен (EGA, VGA жəне т.с.с.) жұмыс істейді. Парақтар нөмірі нөлден басталады.
Келесі программа алдымен көрінетін парақта квадрат салады, көрінбейтін парақта дөңгелек салады. Enter пернесін басқаннан кейін көрінетін парақ ауысады.
Uses Graph;
var
d,m,e: Integer;
String;
begin
d:= Detect;InitGraph(d, m, ‘’); e:= GraphResult;
if e <> grOk then
WriteLn (GraphErrorMsg(e))
178
else {Қате жоқ. Драйвердің бейнежадымен көппарақты жұмыс істейтіндігін тексереміз:}
if d in [HercMono,EGA,EGA64,MCGA,VGA] then
begin{Көппарақты режимді қолданамыз} if d<>HercMono then
SetGraphMode(m-1); {Көрінетін парақты толтырамыз}
Rectangle(10,10,GetMaxX div 2,GetMaxY div 2);
OutTextXY(0,0,’Page 0. Press En-
ter...’);
{Көрінбейтін парақты толтырамыз}
SetActivePage (1);
Circle(GetMaxX div 2, GetMaxY div 2,
100);
OutTextXY(0,GetMaxY-10,’Page 1. Press En-ter...’);
{Парақтарды көрсетемі}
ReadLn;
SetVisualPage(1);
ReadLn;
SetVisualPage (0);
ReadLn;
CloseGraph
end
else
begin {Драйвер көппарақты режимде жұмыс істемейді}
s:= GetDriverName;CloseGraph; WriteLn(‘Адаптер ',s,' тек 1 парақты
режимді қолдайды’);
end
end.
Достарыңызбен бөлісу: |