Grafika ekranowa zale篡 od rodzaju karty graficznej,
w kt鏎� wyposa穎ny jest komputer, oraz od rodzaju monitora. Dobre
mo磧iwo軼i (zwi您ane przede wszystkim z liczb� kolor闚 i rozdzielczo軼i�
ekranu) daj� szeroko rozpowszechnione w naszym kraju karty VGA,
kt鏎a pozwala na prac� w trzech trybach graficznych. Ka盥y program
graficzny powinien zawiera� procedur� inicjuj帷� tryb graficzny,
kt鏎a dla karty VGA mo瞠 mie� posta�:
procedure VGAinit;
var blad, sterownik,tryb : Integer;
begin
sterownik:=VGA;
tryb:=VGAHi;
InitGraph(sterownik,tryb,'');
blad:=GraphResult;
if blad<>0
then begin
Writeln ('B陰d podczas inicjacji trybu graficznego');
Write ('Kod b喚du: ',blad);
Halt
end
end;
Aby rozpocz望 prac� nad programem graficznym nale篡 zadeklerowa�
u篡cie modu逝 Graph (uses graph;)
Nast瘼nie nale篡 zainicjowa� tryb graficzny np. powy窺z� procedur�.
Po inicjacji trybu graficznego mo積a wykorzystywa� procedury
i funkcje opisane w dalszej cz窷ci rozdzia逝
Modu� Graph
Modu� zawiera funkcje i procedury obs逝gi grafiki, umo磧iwiaj帷e
jej realizacj� na dowolnych kartach graficznych, stosowanych w
konfiguracjach sprz皻u typu IBM PC. Nale篡 zaznaczy�, 瞠 program
napisany dla jednego typu urz康zenia graficznego mo瞠 by� uruchamiany
na innych, pod warunkiem operowania w nim wzgl璠nymi warto軼iami
rozdzielczo軼i ekranu i numerami kolor闚, z zastosowaniem odpowiedniego
sterownika ekranu. W niniejszym rozdziale zamieszczono definicje
typ闚, sta造ch, zmiennych, funkcji i procedur, niezb璠nych przy
tworzeniu programu.
Sta貫
kody b喚d闚 graficznych (patrz: Komunikaty b喚d闚)
grOk = 0;
grNolnitGraph = -1;
grNotDetected = -2;
grFileNotFound = -3;
grlnvalidDriver = -4;
grNoLoadMem = -5;
grNoScanMem = -6;
grNoFloodMem = -7;
grFontNotFound = -8;
grNoFontMem = -9;
grlnvalidMode = -10;
grError = -11;
grIOerror = -12;
grlnvalidFont = -13;
grlnvalidFontNum = -14;
definiuj帷e sterowniki ekranu
CurrentDriver = -128;
Detect = 0;
CGA = 1;
MCGA = 2;
EGA = 3;
EGA64 = 4;
EGAMono = 5;
IBM8514 == 6;
HercMono = 7;
ATT400 = 8;
VGA = 9;
PC3270 =10;
definiuj帷e tryby graficzne
CGACO = 0; 320x200, paleta 0: kolor 10,12,14, 1 strona
CGAC1 = 1; 320x200, paleta 1: kolor 11, 13, 15,1 strona
CGAC2 = 2; 320x200, paleta 2: kolor 2, 4, 6, 1 strona
CGAC3 = 3; 320x200, paleta 3: kolor 3, 5, 7, 1 strona
CGAHi = 4; 640x200,1 kolor, 1 strona
MCGACO = 0; 320x200, paleta 0: kolor 10, 12, 14, 1 strona
MCGAC1 = 1; 320x200, paleta 1: kolor 11,13,15, 1 strona
MCGAC2 = 2; 320x200, paleta 2: kolor 2, 4, 6, 1 strona
MCGAC3 = 3; 320x200, paleta 3: kolor 3, 5, 7, 1 strona
MCGAMed = 4; 640x200, 1 kolor, 1 strona
MCGAHi = 5; 640x480, 1 strona
EGALo = 0; 640x200,16 kolor闚, 4 strony
EGAHi = 1; 640x350,16 kolor闚, 2 strony
EGA64LO = 0; 640x200,16 kolor闚, 1 strona
EGA64HI = 1; 640x350, 4 kolory, 1 strona
EGAMonoHi = 3; 640x350, karty: 64 K - 1 strona, 256 K-2 strony
HercMonoHi = 0; 720x348, 2 strony
ATT400CO = 0; 320x200, paleta O: kolor 10, 12, 14, 1 strona
ATT400C1 = 1; 320x200, paleta 1: kolor 11,13,15, 1 strona
ATT400C2 = 2 ;320x200, paleta 2: kolor 2, 4, 6, 1 strona
ATT400C3 = 3; 320x200, paleta 3: kolor 3, 5, 7, 1 strona
ATT400Med = 4 ;640x200, 1 strona
ATT400HI = 5 ;640x400, 1 strona
VGALo = 0; 640x200, 16 kolor闚, 4 strony
VGAMed = 1 ;640x350, 16 kolor闚, 2 strony
VGAHi = 2; 640x480, 16 kolor闚, 1 strona
PC3270HI = 0; 720x350, 1 strona
IBM8514LO = 0; 640x480, 256 kolor闚
IBM8514HI = 1 ;1024x768, 256 kolor闚
definiuj帷a maksymaln� liczb� kolor闚
MaxColors =15; 16 kolor闚 (0.. 15)
definiuj帷e kolory
Black = 0; czarny
Blue = 1; niebieski
Black = 0; czarny
Blue = 1; niebieski
Green = 2; zielony
Cyan = 3; turkusowy
Red = 4; czerwony
Magenta = 5; karmazynowy
Brown = 6; br您owy
LightGray = 7; jasnoszary
DarkGray = 8; ciemnoszary
LightBIue = 9; jasnoniebieski
LightGreen = 10; jasnozielony
LightCyan =11; jasnoturkusowy
LightRed =12; jasnoczerwony
LightMagenta =13; jasnokarmazynowy
Yellow = 14; 鄴速y
White = 15; bia造
definiuj帷e kolory karty EGA na karcie IBM8514
EGABIack = 0; EGADarkgray = 56;
EGABIue = 1; EGALightbIue = 57;
EGAGreen = 2; EGALightgreen = 58;
EGACyan = 3; EGALightcyan = 59;
EGARed = 4; EGALightred = 60;
EGAMagenta = 5; EGALightmagenta = 61;
EGABrown = 20; EGAYellow = 62;
EGALightgray = 7; EGAWhite = 63;
definiuj帷e rodzaje linii
SolidLn = 0; ci庵豉
DottedLn = 1; przerywana kropkowana
CenterLn = 2; przerywana (kreska kropka)
DashedLn = 3; przerywana (kreski)
UserBitLn = 4; definiowana przez u篡tkownika
NormWidth = 1; normalnej grubo軼i (jeden punkt)
ThickWidth = 3; pogrubiona (trzy punkty)
definiuj帷e kr鎩 pisma
DefaultFont = 0; standardowe (8x8 punkt闚)
TriplexFont = 1;
SmallFont = 2; pismo techniczne
SansSerifFont = 3; bezszeryfowa
GothicFont = 4; pismo gotyckie
definiuj帷e kierunek wyprowadzania tekstu
HorizDir = 0; od lewej do prawej
VertDir = 1; z do逝 do g鏎y (pionowe - odwr鏂one o 90 stopni
w lewo)
definiuj帷e po這瞠nie tekstu (wyr闚nywanie) wzgl璠em pozycji
kursora graficznego
LeftText = 0; poziomo, wyr闚nanie od lewej
CenterText = 1; poziomo, wy鈔odkowanie
RightText = 2; poziomo, wyr闚nanie od prawej
BottomText = 0; pionowo, wyr闚nanie od do逝
CenterText = 1; pionowo, wycentrowanie
TopText = 2; pionowo, wyr闚nanie od g鏎y
definiuj帷a wielko嗆 znak闚
UserCharSize = 0; wielko嗆 standardowa
definiuj帷e mo磧iwo軼i rysowania poza oknem graficznym
ClipOn=True; obcinanie linii na obrze簑
ClipOff=False; rysowanie poza oknem
definiuj帷e wierzcho貫k s逝pka tr鎩wymiarowego
TopOn = True; zako鎍zony
TopOff = False; niezako鎍zony
definiuj帷e wz鏎 do wype軟iania kontur闚
EmptyFill = 0; kolor t豉, wz鏎 pusty
SolidFill = 1; pe軟e wype軟ienie
LinePill = 2; kreski poziome
LtSIashFill = 3; kreski prawosko郾e
SlashFill = 4; kreski prawosko郾e pogrubione
BkSlashFill = 5; kreski lewosko郾e
LtBkSlashFill = 6; kreski lewosko郾e pogrubione
HatchFill = 7; kratka prosta
XHatchFill = 8; kratka uko郾a
lnterleaveFill = 9; punkty zag瘰zczone
WideDotFill = 10; kropki
CloseDotFill = 11; g瘰te kropki
UserFill = 12; wz鏎 definiowany przez u篡tkownika
definiuj帷e rodzaj operacji na bitach pami璚i ekranu oraz bufora
obrazu (Putlmage i SetWriteMode)
NormalPut = 0; MOV
CopyPut = 0; MOV
XORPut = 1; XOR
OrPut = 2; OR
AndPut = 3; AND
NotPut = 4; NOT
typy
charakterystyki palety (najwi瘯sza liczba kolor闚 (Size) - 16,
najwi瘯szy numer koloru (MaxColors) - 15)
PaletteType = record
Size: Byte; {liczba kolor闚 w palecie}
Colors: array[0.. MaxColors] of Shortint {kolory}
end;
rodzaju kre郵onej linii
LineSettingsType = record
LineStyle: Word; {rodzaj linii}
Pattern: Word; {zdefiniowany wz鏎}
Thickness: Word {grubo嗆 (1 lub 3 punkty)}
end;
sposobu wyprowadzania tekstu
TextSettingsType = record
Font: Word; {numer kroju pisma}
Direction: Word; {kierunek}
CharSize: Word; {powi瘯szenie pisma}
Horiz: Word; {poziome justowanie}
Vert: Word {pionowe justowanie}
end;
opisu wzoru stosowanego do wype軟iania kontur闚
FilISettingsType = record
Pattem: Word; {numer wzoru}
Color: Word {kolor}
end;
wzoru wype軟iania kontur闚
FilIPatternType = array[1..8] of Byte;
wsp馧rz璠nych punktu
PointType = record
X, Y: Integer
end;
okna graficznego
ViewPortType = record
x1, y1, x2, y2: Integer; {wsp馧rz璠ne rog闚 okna}
Clip: Boolean {obcinanie na brzegach}
end;
wsp馧rz璠nych 逝kowych
ArcCoordsType = record
X, Y: l nteger; {wsp馧rz璠 ne 鈔鏚ka 逝ku }
Xstart, Ystart: Integer; {wsp馧rz璠ne pocz徠ku 逝ku}
Xend, Yend: Integer {wsp馧rz璠ne ko鎍a 逝ku}
end;
GraphResult: Integer-funkcja
wynik: Warto嗆 r闚na zeru, je郵i ostatnia wykonana operacja graficzna
by豉 poprawna; warto嗆 ujemna - b陰d (patrz: Kody b喚d闚).
GraphErrorMsg (Kod: Integer): string-funkcja
Kod - numer b喚du
wynik: Komunikat dotycz帷y b喚du o podanym numerze.
DetectGraph (var Ster, Tryb: Integer)-procedura
Ster - numer sterownika ekranu
Tryb - tryb graficzny sterownika
wynik: Sprawdzenie zainstalowanego sterownika ekranu.
GetDriverName: string-funkcja
wynik: Nazwa zainstalowanego sterownika ekranu.
GetMaxMode: Integer-funkcja
wynik: Najwi瘯szy numer trybu graficznego zainstalowanego sterownika
ekranu.
GetModeName (Tryb: Integer): string-funkcja
Tryb - numer trybu graficznego
wynik: Nazwa wyr騜nionego trybu graficznego zainstalowanego sterownika
ekranu.
GetModeRange (Ster: Integer; var Nisryb, WysTryb: Integer)-procedura
Ster - numer sterownika ekranu
NisTryb - najmniejsza warto嗆 numeru trybu graficznego
WysTryb - najwi瘯sza warto嗆 numeru trybu graficznego
wynik: Najmniejszy i najwi瘯szy numer trybu graficznego danego
sterownika ekranu.
InitGraph (var Ster, Tryb: Integer; Dost瘼: string)-procedura
Ster - numer sterownika ekranu
Tryb - numer trybu graficznego
Dost瘼 - 軼ie磬a dost瘼u do pliku dyskowego sterownika
wynik: Zainicjowanie modu逝 Graph.
SetGraphMode (Tryb: Integer)-procedura
Tryb - numer trybu graficznego
wynik: Przej軼ie do zadanego trybu graficznego. Procedur� t�
nale篡 wywo豉� bezpo鈔ednio po wywo豉niu InitGraph. W ten spos鏏
mo積a przej嗆 od trybu znakowego do graficznego lub zmieni� standardowy
tryb graficzny.
GetGraphMode: Integer-funkcja
wynik: Numer bie膨cego trybu graficznego.
RestoreCRTMode-procedura
wynik: Prze陰czenie na tryb znakowy, do momentu wywo豉nia procedury
SetGraphMode.
CloseGraph-procedura
Wynik: Zako鎍zenie trybu graficznego.
RegisterBGIFont (Znak: Pointer): Integer-funkcja
Znak - wska幡ik obszaru pami璚i zajmowanej przez wzorce pisma
wynik: Warto嗆 r闚na numerowi kroju pisma. Warto嗆 ujemna oznacza
b陰d.
RegisterBGIDriver (Ster: Pointer): Integer-funkcja
Ster - wska幡ik obszaru pami璚i zajmowanej przez program sterownika
ekranu
wynik: Warto嗆 r闚na numerowi zainstalowanego sterownika ekranu.
Warto嗆 ujemna oznacza b陰d.
lnstallUserDriver (SterNaz: string; Wsk: Pointer): Integer-funkcja
SterNaz - nazwa niestandardowego sterownika ekranu
Wsk - zmienna typu wska幡ikowego (adres sterownika)
wynik: Zainstalowanie sterownika ekranu o nazwie Sternaz.
InstallUserFont (ZnNaz: string): Integer-funkcja
ZnNaz - nazwa pliku dyskowego, zawieraj帷ego czcionki o niestandardowym
kroju
wynik: Zainstalowanie niestandardowego kroju czcionek w pami璚i
komputera. Zwr鏂ony zostaje numer tego kroju. W przypadku wyst徙ienia
b喚du - warto嗆 zero.
SetGraphBufSize (BufRoz: Word)-procedura
BufRoz - rozmiar bufora pami璚i
wynik: Zmiana standardowego rozmiaru bufora graficznego u篡wanego
przy wype軟ianiu kontur闚 (standardowo 4 KB).
GraphDefaults-procedura
wynik: Odtworzenie standardowych warto軼i parametr闚 wszystkich
operacji graficznych.
GetX: Integer-funkcja
wynik: Warto嗆 wsp馧rz璠nej x pozycji kursora graficznego.
GetY: Integer-funkcja
wynik: Warto嗆 wsp馧rz璠nej y pozycji kursora graficznego.
GetMaxX: Integer-funkcja
wynik: Najwi瘯sza warto嗆 wsp馧rz璠nej x ekranu (wsp馧rz璠na
x prawego dolnego rogu).
GetMaxY: Integer-funkcja
wynik: Najwi瘯sza warto嗆 wsp馧rz璠nej y ekranu (wsp馧rz璠na
y lewego g鏎nego rogu).
ClearDevice-procedura
wynik: Oczyszczenie okna graficznego i przywr鏂enie wszystkich
standardowych warto軼i (definicje palet, linii itd.).
SetViewPort (x1, y1, x2, y2: Integer; Clip: Boolean)-procedura
x1, y1 - wsp馧rz璠ne lewego g鏎nego rogu okna
x2, y2 - wsp馧rz璠ne prawego dolnego rogu okna
Clip = True, je郵i rysunki maj� by� obcinane do rozmiar闚 okna;
w przeciwnym przypadku - False.
wynik: Uaktywnienie okna graficznego okre郵onego przez wsp馧rz璠ne
jego rog闚 i ustawienie kursora graficznego w punkcie (O, 0),
czyli (x1, y1), w lewym g鏎nym rogu
GetViewSettings (var Okno: ViewPortType)-procedura
Okno - rekord okna graficznego
wynik: Parametry bie膨cego okna graficznego.
ClearViewPort-procedura wynik: Oczyszczenie bie膨cego okna graficznego.
SetVisualPage (Strona: Word)-procedura
Strona - numer strony wy鈍ietlanej przez sterownik
wynik: Zmiana strony graficznej na ekranie.
SetActivePage (Strona: Word)-procedura
Strona - numer strony graficznej, na kt鏎ej odbywa si� rysowanie.
wynik: Wykonywanie wszystkich operacji graficznych na stronie
o podanym numerze.
PutPixel (x, y: Integer; Kol: Word)-procedura
x, y - wsp馧rz璠ne punktu
Kol - numer koloru
wynik: Wy鈍ietlanie (rysowanie) w zadanym kolorze punktu o okre郵onych
wsp馧rz璠nych.
GetPixel (x, y: Integer): Word-funkcja
x, y - wsp馧rz璠ne punktu
wynik: Numer koloru punktu o okre郵onych wsp馧rz璠nych. Warto嗆
zero oznacza kolor t豉.
SetWriteMode (Tryb: Integer)-procedura
Tryb - rodzaj operacji na bitach
wynik: Wyb鏎 rodzaju operacji na bitach pami璚i ekranu (patrz:
Sta貫).
LineTo (x, y: Integer)-procedura
x, y - wsp馧rz璠ne punktu b璠帷ego ko鎍em rysowanego odcinka
wynik: Rysowanie odcinka od pozycji kursora graficznego do punktu
okre郵onego wsp馧rz璠nymi.
LineRel (dx, dy: Integer)-procedura
dx, dy - przesuni璚ie we wsp馧rz璠nych ekranu
wynik: Rysowanie odcinka od pozycji kursora graficznego do punktu
odleg貫go od niego o dx w kierunku poziomym i dy w kierunku pionowym.
MoveTo (x, y: Integer)-procedura
x, y - wsp馧rz璠ne punktu okna
wynik: Przemieszczenie kursora graficznego do punktu o podanych
wsp馧rz璠nych (rysunek na ekranie nie ulega zmianie).
MoveRel (dx, dy: Integer)-procedura
dx, dy - przesuni璚ie we wsp馧rz璠nych ekranu
wynik: Przemieszczenie kursora graficznego do punktu odleg貫go
od jego pozycji wyj軼iowej o dx w kierunku poziomym i dy w kierunku
pionowym.
Line (x1, y1, x2, y2: Integer)-procedura
x1, y1, x2, y2 - wsp馧rz璠ne pocz徠ku i ko鎍a odcinka
wynik: Rysowanie odcinka 陰cz帷ego punkty o podanych wsp馧rz璠nych.
GetLineSettings (Info: LineSettingsType)-procedura
Info - rekord kre郵onych linii
wynik: Rekord okre郵aj帷y rodzaj rysowanej linii.
SetLineStyle (Rodz, Wz鏎, Grub: Word)-procedura
Rodz- rodzaj linii (0-4)
Wz鏎 - wz鏎 linii definiowanej przez u篡tkownika
Grub - grubo嗆 rysowanej linii (1 lub 3)
wynik: Wyb鏎 linii do rysowania
Rectangle (x1, y1, x2, y2: Integer)-procedura
x1, y1 - wsp馧rz璠ne lewego g鏎nego rogu
x2, y2 - wsp馧rz璠ne prawego dolnego rogu
wynik: Rysowanie prostok徠a, kt鏎ego przeciwleg貫 wierzcho趾i
to punkty o podanych wsp馧rz璠nych.
Bar (x1, y1, x2, y2: Integer)-procedura
x1, y1 - wsp馧rz璠ne lewego g鏎nego rogu
x2, y2 - wsp馧rz璠ne prawego dolnego rogu
wynik: Wype軟ianie prostok徠a, kt鏎ego przeciwleg貫 wierzcho趾i
maj� zadane wsp馧rz璠ne. Kontury prostok徠a nie s� rysowane.
Bar3D (x1, y1. x2, y2: Integer; G�, Szczyt: Boolean)-procedura
x1, y1 - wsp馧rz璠ne lewego g鏎nego rogu przedniej 軼iany prostopad這軼ianu
x2, y2 - wsp馧rz璠ne prawego dolnego rogu przedniej 軼iany prostopad這軼ianu
G� - d逝go嗆 prostopad這軼ianu (g喚boko嗆 rzutu)
Szczyt = True oznacza, 瞠 g鏎na 軼iana prostopad這軼ianu nie
b璠zie rysowana
wynik: Rysowanie prostopad這軼ianu, kt鏎ego przednia 軼iana jest
okre郵ona wsp馧rz璠nymi przeciwleg造ch rog闚. G喚boko嗆 rzutu
jest liczona w punktach ekranu. Ostatni parametr okre郵a, czy
g鏎na 軼iana prostopad這軼ianu ma by� widoczna czy te� nie.
DrawPoly (IIPkt: Word; var TabPkt)-procedura
IIPkt - liczba punkt闚 wyznaczaj帷ych 豉man�
TabPkt - tablica rekord闚 wsp馧rz璠nych punkt闚
wynik: Rysowanie 豉manej okre郵onej przez kolejne punkty o podanych
wsp馧rz璠nych.
FilIPoly (lIPkt: Word; var TabPkt)-procedura
IIPkt - liczba wierzcho趾闚 wieloboku
TabPkt - tablica rekord闚 wsp馧rz璠nych wierzcho趾闚
wynik: Rysowanie wieloboku okre郵onego przez kolejne punkty o
podanych wsp馧rz璠nych i wype軟ienie go wzorem do wype軟iania
kontur闚.
GetFillSettings (var Wypinfo: FilISettingsType)-procedura
Wypinfo - rekord opisu wzoru stosowanego do wype軟iania kontur闚
wynik: Rekord okre郵aj帷y u篡wany wz鏎 wype軟iania kontur闚 (wz鏎
i kolor).
GetFillPattern (var Wyp: FilIPatternType)-procedura
Wyp - rekord wzoru wype軟iania kontur闚
wynik: Bie膨cy, zdefiniowany przez u篡tkownika, wz鏎 wype軟iania
kontur闚.
SetFillStyle (Num, Kol: Word)-procedura
Num - numer wzoru (patrz: Sta貫)
Kol - numer koloru (patrz: Sta貫)
wynik: Wyb鏎 danego wzoru i koloru do wype軟iania kontur闚.
SetFillPattern (Wyp: FilIPatternType; Kol: Word)-procedura
Wyp - tablica wzoru wype軟iania kontur闚
Kol - numer koloru (patrz: Sta貫)
wynik: Zdefiniowanie wzoru wype軟iania kontur闚 wg wymaga� u篡tkownika.
Wz鏎 jest zdefiniowany w zmiennej typu FilIPatternType, b璠帷ej
o鄉ioelementow� tablic� typu Byte. Ka盥y z element闚 tablicy,
zapisany w postaci dw鎩kowej, okre郵a istnienie b康� brak 鈍iec帷ego
punktu na ekranie. Cyfra 1 odpowiada punktowi 鈍iec帷emu, O -
wygaszonemu.
FloodFill (x, y: Integer; Ob: Word)-procedura
x, y - wsp馧rz璠ne punktu znajduj帷ego si� w danym obszarze
Ob - numer koloru konturu
wynik: Wype軟ienie (bie膨cym wzorem) obszaru zawieraj帷ego punkt
o podanych wsp馧rz璠nych i ograniczenie go konturem w podanym
kolorze.
Arc xy, y: Integer; AlfaP, AlfaK, r: Word)-procedura
x, y - wsp馧rz璠ne 鈔odka 逝ku okr璕u
AlfaP, AlfaK - k徠y (wierzcho貫k w punkcie (x, y)) okre郵aj帷e
pocz徠ek i koniec 逝ku (w stopniach)
r - promie� 逝ku
wynik: Rysowanie 逝ku okr璕u o 鈔odku w punkcie o podanych wsp馧rz璠nych
i promieniu r, wyznaczonego przez zadane k徠y.
GetArcCoords (var Info: ArcCoordsType)-procedura
Info - rekord wsp馧rz璠nych 逝kowych
wynik: Wsp馧rz璠ne 逝ku narysowanego w wyniku ostatniego wywo豉nia
procedury Arc (鈔odek, pocz徠ek, koniec).
Circle (x, y: Integer; r: Word)-procedura
x, y - wsp馧rz璠ne 鈔odka okr璕u
r - promie� okr璕u
wynik: Rysowanie okr璕u o 鈔odku w punkcie o podanych wsp馧rz璠nych
i danym promieniu.
Ellipse (x, y: tnteger; AlfaP, AlfaK, xr, yr: Word)-procedura
x, y - wsp馧rz璠ne 鈔odka 逝ku elipsy
AlfaP, AlfaK - k徠y (wierzcho貫k w punkcie (x, y)) okre郵aj帷e
pocz徠ek i koniec 逝ku (w stopniach)
xr, yr - po堯wki d逝go軼i osi wielkiej i ma貫j
wynik: Rysowanie 逝ku elipsy o 鈔odku w punkcie o podanych wsp馧rz璠nych
i po堯wkach osi xr i yr, wyznaczonego przez podane k徠y.
FillEllipse (x, y: Integer; xr, yr: Word)-procedura
x, y - wsp馧rz璠ne 鈔odka elipsy
xr, yr- po堯wki d逝go軼i osi wielkiej i ma貫j
wynik: Rysowanie wype軟ionej elipsy o zadanym 鈔odku i po堯wkach
osi.
GetAspectRatio (var Xasp, Yasp: Word)-procedura
Xasp, Yasp - rozdzielczo嗆 ekranu w kierunku x i y
wynik: Bie膨ca rozdzielczo嗆 ekranu.
SetAspectRatio (Xasp, Yasp: Word)-procedura
Xasp, Yasp - rozdzielczo嗆 ekranu w kierunku x i y
wynik: Zmiana rozdzielczo軼i ekranu w kierunku poziomym i pionowym.
PieSlice (x, y: Integer; AlfaP, AlfaK, r: Word)-procedura
x, y - wsp馧rz璠ne 鈔odka 逝ku okr璕u
AlfaP, AlfaK - k徠y (wierzcho貫k w punkcie (x, y)) okre郵aj帷e
pocz徠ek i koniec 逝ku (w stopniach)
r - promie� 逝ku
wynik: Rysowanie i wype軟ianie wycinka ko豉 o 鈔odku w danym
punkcie i promieniu r, wyznaczonym przez zadane k徠y (patrz: Arc).
Sector (x, y: Integer; AlfaP, AlfaK, xr, yr: Word)-procedura
x, y - wsp馧rz璠ne 鈔odka 逝ku elipsy
AlfaP, AlfaK - k徠y (wierzcho貫k w punkcie (x, y)) okre郵aj帷e
pocz徠ek i koniec 逝ku (w stopniach)
xr, yr - po堯wki d逝go軼i wielkiej i ma貫j osi elipsy
wynik: Rysowanie wype軟ionego wycinka elipsy o 鈔odku w danym
punkcie i danych po堯wkach osi, wyznaczonego przez zadane k徠y.
SetBkColor (Kol: Word)-procedura
Kol - numer koloru t豉
wynik: Zmiana bie膨cego numeru koloru t豉 na zapami皻any pod
numerem kol.
SetColor (Kol: Word)-procedura
Kol - numer koloru kursora graficznego
wynik: Zmiana bie膨cego numeru koloru kursora graficznego na
zapami皻any pod numerem kol.
GetBkColor: Word-funkcja
wynik: Numer bie膨cego koloru t豉.
GetColor: Word-funkcja
wynik: Numer bie膨cego koloru kursora graficznego.
SetAllPalette (var Paleta: PaletteType)-procedura
Paleta - tablica kolor闚 w palecie
wynik: Zmiana kolor闚 w palecie wed逝g tablicy (liczba i kolejno嗆
kolor闚).
SetPalette (KolNum: word; Kol: Shortint)-procedura
KolNum - pozycja koloru w palecie
Kol - numer koloru
wynik: Zmiana koloru na danej pozycji w palecie na kolor o numerze
kol.
GetPalette (var Paleta: PaletteType)-procedura
Paleta - tablica kolor闚 w palecie
wynik: Stosowana paleta kolor闚.
GetPaletteSize: Integer-funkcja
wynik: Liczba kolor闚 bie膨cej palety.
GetDefaultPalette(var Palette: PaletteType)-procedura
wynik: Dane dotycz帷e standardowej palety kolor闚.
GetMaxColor: Word-funkcja
wynik: Najwi瘯szy numer koloru dost瘼ny w danym trybie graficznym.
SetRGBPalette (KNum, Czer, Ziel, Nieb: Integer)-procedura
KNum - pozycja koloru w palecie sterownika IBM8514
Czer, Ziel, Nieb - sk豉dowe: czerwona, zielona i niebieska danego
koloru
wynik: Zmiana koloru w palecie sterownika IBM9514 na kolor okre郵ony
陰cznie przez Czer, Ziel, Nieb.
ImageSize (x1, y1, x2, y2: Integer): Word-funkcja
x1, y1 - wsp馧rz璠ne lewego g鏎nego rogu prostok徠nego obszaru
ekranu
x2, y2 - wsp馧rz璠ne prawego dolnego rogu prostok徠nego obszaru
ekranu
wynik: Liczba bajt闚 potrzebnych do przechowania obrazu znajduj帷ego
si� w obszarze okre郵onym danymi wsp馧rz璠nymi
. Getlmage(x1, y1, x2, y2: Integer; var Mapa)-procedura
x1, y1 - wsp馧rz璠ne lewego g鏎nego rogu prostok徠nego obszaru
ekranu
x2, y2 - wsp馧rz璠ne prawego dolnego rogu prostok徠nego obszaru
ekranu
Mapa - dowolna zmienna
wynik: Przekazanie do kom鏎ek pami璚i, zajmowanych przez warto嗆
zmiennej mapa, obrazu znajduj帷ego si� w obszarze okre郵onym danymi
wsp馧rz璠nymi.
Putlmage (x, y: Integer; var Mapa; Tryb: Word)-procedura
x, y - wsp馧rz璠ne lewego g鏎nego rogu prostok徠nego obszaru
ekranu
Mapa - dowolna zmienna
Tryb - rodzaj operacji na bitach pami璚i ekranu
wynik: Przekazanie na ekran obrazu zapami皻anego za pomoc� Getlmage
(lewy g鏎ny r鏬 ekranu b璠zie si� pokrywa� z zadanym punktem).
Obraz zostanie odtworzony w spos鏏 okre郵ony przez parametr tryb.
SetTextJustify (Hor, Ver: Word)-procedura
Hor, Ver - po這瞠nie tekstu w kierunku poziomym i pionowym, wzgl璠em
pozycji kursora graficznego
wynik: Ustalenie sposobu wyr闚nywania tekstu w poziomie (na podstawie
Hor} i w pionie (na podstawie Ver).
SetTextStyle (Znak, Kier, Roz: Word)-procedura
Znak - numer kroju pisma
Kier - kierunek wyprowadzania tekstu
Roz - rozmiar znak闚
wynik: Tekst wyprowadzony zgodnie z zadanymi parametrami.
GetTextSettings (var Info: TextSettingsType)-procedura
Info - rekord sposobu wyprowadzania tekstu
wynik: Rekord z bie膨cymi parametrami okre郵aj帷ymi kr鎩 pisma
i spos鏏 wyprowadzania tekstu.
OutText(Tekst: string)-procedura
Tekst - ci庵 znak闚 (napis)
wynik: Rysowanie danego ci庵u znak闚 w spos鏏 okre郵ony za pomoc�
procedury SetTextJustify.
OutTextXY (x, y: Integer; Tekst: string)-procedura
x, y - wsp馧rz璠ne punktu, wzgl璠em kt鏎ego odbywa si� justowanie
Tekst - ci庵 znak闚 (napis)
wynik: Rysowanie danego ci庵u znak闚 z uwzgl璠nieniem justowania
wzgl璠em punktu (x, y).
SetUserCharSize (MultX, DivX, MultY, DivY: Word)-procedura
MultX, DivX - licznik i mianownik wsp馧czynnika zmiany szeroko軼i
znaku (MultX/DivX)
MultY, DA/Y - licznik i mianownik wsp馧czynnika zmiany wysoko軼i
znaku (MultY/DivY)
wynik: Zmiana szeroko軼i i wysoko軼i znak闚 w stosunku do przyjmowanych
w procedurze SetTextStyle.
TextHeight (Tekst: string): Word-funkcja
Tekst - ci庵 znak闚 (napis)
wynik: Wysoko嗆 wyprowadzanego ci庵u znak闚, podana w punktach
ekranu, z uwzgl璠nieniem bie膨cego sposobu wyprowadzania tekst闚.
TextWidth (Tekst: string): Word-funkcja
Tekst - ci庵 znak闚 (napis)
wynik: Szeroko嗆 wyprowadzanego ci庵u znak闚, podana w punktach
ekranu, z uwzgl璠nieniem bie膨cego sposobu wyprowadzania tekst闚.