Polecenia trybu graficznego
Arc (X,Y; Integer; StAngle, EndAngle, Radius; Word); |
łuk, wycinek okręgu |
Bar (x1, y1, x2, y2: Integer); |
prostokąt, „słupek” - np. dla wykresów słupkowych |
Bar3D (x1, y1, x2, y2: Integer; Depth: Word; Top: Boolean); |
słupek „trójwymiarowy” |
Circle (X,Y: Integer; Radius: Word); |
Okrąg |
ClearDevice (X,Y: Integer; Radius: Word); |
czyszczenie ekranu graficznego |
ClearViewPort; |
czyszczenie okna (część ekranu), w trybie graficznym |
DetectGraph; |
sprawdza jaką kartę graficzną mamy do dyspozycji i w którym trybie graficznym właśnie pracujemy |
DrawPoly (NumPoints: Word; var PolyPoints); |
rysuje wielokąt |
Ellipse(X, Y: Integer; StAngle, EndAngle: Word; XRadius, YRadius: Word); |
rysuje elipsę |
FillEllipse (X, Y: Integer; XRadius, YRadius: Word); |
rysuje elipsę wypełnioną wewnątrz |
FillPoly (NumPoints: Word; var PolyPoints); |
rysuje wielokąt wypełniony wewnątrz |
FloodFill (X, Y: Integer; Border: Word); |
wypełnia zamknięty (ograniczony liniami o innym kolorze) region ekranu wcześniej trzeba wypełnić kolor i wzór „wypełniacza” |
GetArcCoords (var ArcCoords: _ArcCoordsType_); |
podaje współrzędne ostatnio rysowanego łuku |
GetAspectRatio (var Xasp, Yasp: Word); |
zwraca współczynniki „skali rysunku” (aspect ratio); ponieważ proporcje rozdzielczości (w pikselach) po poziomej osi X i po pionowej osi Y są różne dla różnych kart graficznych, pozwala na skalowanie rysunku |
GetBkColor: Word; |
podaje bieżący kolor tła |
GetColor: Word; |
podaje bieżący kolor rysowania |
GetDefaultPalette (var Palette: PaletteType); |
ustawia domyślną paletę kolorów |
GetDriverName: String; |
podaje nazwę sterownika graficznego (karty) |
GetFillPattern (var FillPattern: FillPatternType); |
podaje bieżący wzorek „wypełniacza” |
GetFillSettings (var FillInfo: FillSettingsType); |
podaje bieżący kolor i wzorek „wypełniacza” |
GetGraphMode: Integer; |
podaje bieżący tryb graficzny |
GetImage (x1, y1, x2, y2: Integer; var BitMap); |
zapamiętuje rysunek |
GetLineSettings (var LineInfo: LineSettingsType); |
podaje bieżący styl linii (ciągła, przerywana, grubość itp.) |
GetMaxColor: Word; |
podaje najwyższy dostępny numer koloru |
GetMaxMode: Integer; |
podaje najwyższy dostępny tryb graficzny |
GetMaxX: Integer; |
podaje maksymalną wartość współrzędnej X na ekranie |
GetMaxY: Integer; |
podaje maksymalną wartość współrzędnej Y na ekranie |
GetModeName (ModeNumber: Integer): string; |
podaje nazwę trybu graficznego |
GetModeRange (GraphDriver:Integer; var LoMode, HiMode:Integer); |
podaje zakres dostępnych trybów graficznych |
GetPalette (var Palette: PaletteType); |
podaje bieżącą paletę kolorów |
GetPaletteSize: Integer; |
podaje wielkość palety kolorów |
GetPixel (X,Y: Integer): Word; |
podaje stan wskazanego punktu na ekranie (jaki ma kolor?) |
GetTextSettings (var TextInfo: TextSettingsType); |
podaje bieżące ustawienia do wprowadzania tekstu (współrzędne, kolor, czcionka itp.) |
GetViewSettings (var ViewPort: ViewPortType); |
podaje parametry bieżącego okna graficznego (View Port Settings) |
GetX: Integer; |
podaje bieżącą współrzędną X kursora graficznego (niewidocznego) |
GetY: Integer; |
podaje bieżącą współrzędną Y kursora graficznego (niewidocznego) |
GraphDefaults; |
wraca do domyślnych ustawień trybu graficznego, ustawia kursor graficzny w punkcie (0,0) |
GraphErrorMsg (ErrorCode: Integer): string; |
podaje komunikat o błędzie grafiki z zadanym numerem |
ImageSize (x1, y1, x2, y2: Integer): Word; |
wielkość rysunku |
InstallUserDriver (Name: string; AutoDetectPtr: pointer): integer; |
instaluje sterownik graficzny użytkownika |
InstallUserFont (FontFileName: string ): Integer; |
instaluje czcionki graficzne użytkownika |
Line (x1, y1, x2, y2: Integer); |
rysuje linię prostą |
LineRel (Dx, Dy: Integer); |
rysuje linię prostą relatywnie do bieżącej pozycji kursora graficznego |
LineTo (X, Y: Integer); |
rysuje linię od bieżącego położenia kursora do wskazanego punktu |
MoveRel (Dx, Dy: Integer); |
przesuwa kursor graficzny relatywnie (w stosunku do pozycji początkowej) |
MoveTo (X, Y: Integer); |
przesuwa kursor graficzny do wskazanego punktu |
OutText (TextString: string); |
wyprowadza tekst |
OutTextXY (X,Y: Integer; TextString: string); |
wyprowadza tekst począwszy od punktu o zadanych współrzędnych X i Y |
PieSlice (X, Y: Integer; StAngle, EndAngle, Radius: Word); |
rysuje wycinek wykresu kołowego |
PutImage (X, Y: Integer; var BitMap; BitBlt: Word); |
wstawia na ekran rysunek |
PutPixel (X, Y: Integer; Pixel: Word); |
zapala punkt na ekranie |
Rectangle (x1, y1, x2, y2: Integer); |
rysuje prostokąt |
RegisterBGIDriver (driver: pointer): Integer; |
rejestruje sterownik graficzny BGI |
RegisterBGIFont (Font: pointer): Integer; |
rejestruje czcionki dla środowiska DOS |
RestoreCrtMode; |
wraca do trybu tekstowego (zwykle na chwilę) |
Sector (x, y: Integer; StAngle,EndAngle, XRadius, YRadius: Word); |
rysuje wypełniony wycinek elipsy/okręgu |
SetActivePage (Page: Word); |
wybiera aktywną stronę (czyli taką, na której odbywa się rysowanie); wszystkie operacje mogą odbywać się wyłącznie w pamięci; Visual/Visible Page - strona na bieżąco odwzorowywana na ekranie |
SetAllPalette (var Palette); |
zmienia wszystkie kolory palety na podane |
SetAspectRatio (Xasp, Yasp: Word): Word; |
ustawia skalę rysunku |
SetBkColor (ColorNum: Word); |
ustawia kolor tła |
SetColor (Color: Word); |
ustawia kolor rysunku |
SetFillPattern (Pattern: FillPatternType; Color: Word); |
ustawia wzór “wypełniacza” wnętrza figur i regionów |
SetFillStyle (Pattern: Word; Color: Word); |
ustawia rodzaj „wypełniacza” |
SetGraphBufSize (BufSize: Word); |
ustawia wielkość bufora pamięci dla grafiki |
SetGraphMode (Mode: Integer); |
włącza tryb graficzny |
SetLineStyle (LineStyle: Word; Pattern: Word; Thickness: Word); |
ustawia rodzaj linii (ciągła, przerywana, gruba itp.) |
SetPalette (ColorNum: Word; Color: Shortint); |
ustawia stosowaną paletę barw |
SetRGBPalette (ColorNum, RedValue, GreenValue, BlueValue: Integer); |
ustawia paletę trójskładnikową (R=Red, G=Green, B=Blue) |
SetTextJustify (Horiz, Vert: Word); |
ustawia sposób wyrównywania tekstu |
SetTextStyle (Font, Direction: Word; CharSize: Word); |
ustawia styl tekstu |
SetUserCharSize (MultX, DivX, MultY, DivY: Word); |
ustawia wielkość czcionek użytkownika |
SetViewPort (x1, y1, x2, y2: Integer; Clip: Boolean); |
ustawia okno graficzne na ekranie |
SetVisualPage (Page: Word); |
wybiera stronicę pamięci karty widoczną na ekranie |
SetWriteMode (WriteMode: Integer); |
ustawia tryb „nadrysowywania” na poprzedni rysunek |
TextHight (TextString: string): Word; |
ustawia wysokość tekstu |
TextWidth (TextString: string): Word; |
ustawia szerokość tekstu |
FUNKCJE I PROCEDURY GRAFICZNE MODUŁU GRAPH
Trudno jest sobie wyobrazić program komputerowy, który operując duża liczbą danych i wyników nie korzysta z trybu graficznego. Jego obsługa jest dość skomplikowana, warto jest jednak poznać pewne reguły gry przy pracy w tym trybie w środowisku jednego z produktów firmy Borland - Turbo Pascalu.
Wiadomości wstępne
Moduł Graph, zawierający największą liczbę procedur i funkcji obsługuje grafikę ekranową. Procedury i funkcje tego modułu pozwalają:
rysować na ekranie krzywe różnych kształtów i kolorów,
wypełniać kontury określonym kolorem,
wyprowadzać na ekran napisy (poziomo i pionowo) w różnych krojach pisma, z możliwością ich zmniejszania i powiększania.
Mikrokomputery typu PC mogą być wyposażone w różne karty graficzne, np. CGA, EGA, Hercules, VGA lub SVGA obsługujące ekrany monitorów o różnej rozdzielczości. Oczywiście rozdzielczość ekranu, czyli liczba wyświetlanych w poziomie i pionie punktów (ang. pixels), jest ściśle związana z procedurami i funkcjami graficznymi. W celu uniezależnienia systemu Turbo Pascal od kart graficznych mikrokomputerów, począwszy od wersji 4.0 przewidziano dla najczęściej stosowanych kart sterowniki, tj. programy obsługujące związek procedur i funkcji modułu Graph z tymi kartami. Sterowniki te znajdują się w zbiorach o rozszerzeniu .BGI. Obsługują one między innymi następujące karty graficzne (oraz inne karty całkowicie z nimi zgodne ):
CGA VGA MCGA Hercules EGA
Do pełnego wykorzystania niezbędne są także .CHR. Zawierają one definicje krojów pisma, i funkcje modułu Graph.
Wykorzystanie standardowych procedur i funkcji modułu Graph wymaga jego deklaracji za pomocą konstrukcji uses. Ponadto przed wywołaniem pierwszej funkcji lub procedury graficznej modułu Graph tryb graficzny powinien zostać zainicjowany poprzez wywołanie procedury InitGraph, która m.in. ładuje do pamięci i inicjuje odpowiedni sterownik. Przed wywołaniem procedury inicjującej tryb graficzny istnieje możliwość automatycznej detekcji karty graficznej, co zapewnia procedura DetectGraph. Na zakończenie wykonywania operacji graficznych powinna być wywołana procedura CloseGraph, która powoduje usunięcie z pamięci sterownika i powrót do poprzedniego trybu tekstowego. Mamy tu zatem do czynienia z sytuacją podobną do otwierania i zamykania plików.
Podczas pracy z modułem graficznym istnieje także możliwosć przełączania trybu graficznego na tryb tekstowy RestoreCrMode i SetGraphMode.
Ekran w trybie graficznym ma inny układ współrzędnych niż w trybie tekstowym. Każdy punkt tego ekranu posiada swoje współrzędne, przy czym punkt znajdujący się w lewym górnym narożniku oznaczony jest jako (0,0). Liczba punktów ekranu wzdłuż osi x i y zależy od monitora i obsługującej go karty graficznej. Informację o rozdzielczości ekranu w kierunku x i y, to jest maksymalne dostępne wartości tych współrzędnych, można uzyskać za pomocą bezparametrowych funkcji GetMaxX i GetMaxY. Dzięki nim możemy więc budując program przynajmniej częściowo uniezależnić się od karty graficznej i jej trybu (poprzez posługiwanie się wartościami współrzędnych ekranu względem wielkości maksymalnych) . istnieje także możliwość przełączenia i odwrotnie. Służą do tego celu procedury Funkcje i procedury graficzne modułu Graph Dla większości kart graficznych (za wyjątkiem karty Hercules i PC3270) możliwe jest wykorzystanie różnych trybów graficznych ekranów, ściśle związanych z rodzajem wykorzystywanej karty graficznej. Różnią się one:
rozdzielczością, to jest liczbą dostępnych pixeli w kierunku x i y, określoną funkcjami GetMaxX i GetMaxY,
paletą barw, to jest liczbą dostępnych jednocześnie kolorów (funkcja GetMaxColor określa maksymalny numer koloru dla danego trybu),
liczbą dostępnych stron graficznych (pamięć ekranu może być podzielona na strony, wyświetlane następnie na ekranie monitora w dowolnej kolejności, co zapewniają procedury SetActivePage, SetVisualPage).
Maksymalna liczba kolorów dostępnych jednocześnie wynosi dla większości sterowników kolorowych 16. Ideałem jest tu tryb IBH8514Hi o palecie 256 kolorów. Monochromatyczna karta Hercules może pracować w tylko jednym trybie HercMonoHi o rozdzielczości 720x348, dwubarwnej palecie kolorów i dwóch stronach graficznych.
Procedury inicjujące i zamykające tryb graficzny.
Tryb graficzny jest ściśle związany ze sprzętem komputerowym, a dokładniej z kartą graficzną, w jaką wyposażony jest komputer. W systemie Turbo Pascal do obsługi różnych kart graficznych zainstalowane są sterowniki. Podczas inicjowania trybu graficznego należy określić właściwy dla danego sprzętu sterownik i tryb pracy ekranu.
DetectGraph (sterownik, tryb)
Do sprawdzenia sprzętu komputerowego i określenia właściwego dla niego sterownika, jak również graficznego trybu pracy ekranu służy procedura DetectGraph. Oba argumenty wywołania tej procedury muszą być zmiennymi typu Integer. W wyniku wywołania zmiennej sterownik zostanie przypisana wartość określająca sterownik do obsługi karty graficznej zainstalowanej w zestawie komputerowym, natomiast zmiennej tryb - wartość określająca tryb graficzny wysokiej rozdzielczości.
InitGraph (sterownik, tryb, skorowidz)
W celu zastosowania funkcji i procedur modułu Graph należy najpierw moduł ten zainicjować poprzez wywołanie procedury InitGraph. W wywołaniu tym pierwsze dwa argumenty muszą być zmiennymi typu Integer, a ostatni - wyrażeniem typu string.
Jeśli wartością zmiennej sterownik jest Detect, tj. 0 (musi uprzednio nastąpić instrukcja przypisania Sterownik:=Detect, gdyż pierwszy parametr nie może być stałą) to wartość drugiej zmiennej może być dowolna i wywołanie powyższej procedury powoduje automatyczny wybór przez system takiego sterownika i trybu pracy ekranu, jaki byłby określony przez wywołanie procedury DetectGraph. W wyniku takiego wywołania procedury InitGraph zmiennym sterownik i tryb zostaną przypisane wartości określające sterownik obsługujący kartę graficzną zestawu komputerowego i tryb wysokiej rozdzielczości.
Jeśli w wywołaniu procedury InitGraph wartość zmiennej sterownik będzie różna od zera, to zostanie ona przyjęta za numer sterownika. W tym przypadku konieczne jest, aby wartością drugiej zmiennej (tryb) była jedną z wartości określających tryb graficzny dla danego sterownika.
Trzeci argument wywołania procedury InitGraph jest łańcuchem określającym skorowidz (katalog) i/lub napęd, w którym znajduje się dany sterownik. Jeśli skorowidzem tym jest skorowidz bieżący, to można wyspecyfikować łańcuch pusty. W naszym przypadku należy podać: , gdyż w tym właśnie katalogu zgromadzone są sterowniki.
Zwróćmy jeszcze raz uwagę na fakt, że ponieważ pierwsze dwa argumenty wywołania procedury InitGraph są zmiennymi, więc nie jest dozwolone bezpośrednie specyfikowanie w wywołaniu stałych definiujących sterowniki i stałych trybów graficznych ekranu. Błąd wykonania procedury InitGraph jest sygnalizowany przez przypisanie odpowiedniej wartości funkcji GraphResult. Ta sama wartość (w przypadku wystąpienia błędu) zostanie przypisana zmiennej sterownik.
CloseGraph
Pracę w trybie graficznym kończy bezparametrowa procedura CloseGraph. Powoduje ona usunięcie sterownika z pamięci operacyjnej i powrót ekranu do trybu sprzed zainicjowania trybu graficznego.
Funkcje i procedury pomocnicze
GraphResult
W trakcie wykonywania operacji graficznych mogą wystąpić różnego rodzaju błędy. Są one sygnalizowane odpowiednią wartością bezparametrowej funkcji GraphResult. Wartość tej funkcji, będąca liczbą całkowitą z przedziału od -14 do 0, określa stan ostatniej wykonywanej operacji graficznej, przy czym wartość 0 oznacza, że operacja ta przebiegła pomyślnie. Poprzez badanie wartości funkcji GraphResult można zaprogramować dalsze działanie programu po wystąpieniu błędu. Należy przy tym pamiętać, że po wywołaniu funkcji system przypisuje jej wartość 0. Do przechowania wartości funkcji konieczne może zatem okazać się zastosowanie pomocniczej zmiennej.
GraphErrorMsg (kod-błędu)
Pomocniczą rolę w obsłudze błędów spełnia funkcja GraphErrorMsg, której wartością jest łańcuch znaków zawierający tekst komunikatu o błędzie dla wyspecyfikowanego kodu_błędu, który jest wielkością typu Integer.
RestoreCrtMode
W trakcie pracy w trybie graficznym można przejść do trybu tekstowego, wykonać w tym trybie określone operacje, po czym powrócić do trybu graficznego, bez potrzeby ponownego jego inicjowania. Wywołanie bezparametrowej procedury RestoreCrtMode powoduje powrót ekranu do trybu obowiązującego przed zainicjowaniem trybu graficznego. Nie będzie jednak na nim tego, co zostawiliśmy przechodząc do trybu graficznego.
SetGraphMode ( tryb)
SetGraphMode przestawia system na wyspecyfikowany tryb graficzny z jednoczesnym oczyszczeniem zawartości ekranu. Tryb oznacza w ogólności dowolne wyrażenie typu Integer (najczęściej specyfikuje się tu jedną ze stałych trybów graficznych ekranu). Dla wszystkich parametrów graficznych zostaną przy tym przyjęte ich wartości standardowe. Jeśli w wywołaniu procedury SetGraphMode zostanie dla obowiązującego (bieżącego) sterownika wyspecyfikowany błędny tryb pracy ekranu, wartością funkcji GraphResult będzie -10. Procedura SetGraphMode może być także używana do zmiany trybów graficznych pracy ekranu, niezależnie od procedury RestoreCrtHode.
GetGraphMode
Informację o aktualnie obowiązującym graficznym trybie pracy ekranu, ustalonym za pomocą procedury InitGraph lub SetGraphHode, uzyskuje się poprzez wywołanie bezparametrowej funkcji GetGraphMode, zwracającej wielkość typu Integer. Funkcje i procedury graficzne modułu Graph.
GetDriverName
Nazwę bieżącego sterownika karty graficznej bezparametrowej funkcji GetDriverName. Wartość można otrzymać przez wywołanie tej funkcji jest typu string.
GetModeName
Nazwę aktualnie wykorzystywanego trybu graficznego wywołanie bezparametrowej funkcji GetModeName, której poprzednio omawianej, jest typu string. można uzyskać przez wywołanie bezparametrowej funkcji GetModeName, której wartość, tak jak dla poprzednio omawianej, jest typu string.
GetMaxX, GetMaxY
Funkcje te zwracają informację o rozdzielczości (maksymalne dostępne wartości współrzędnych). ekranu w kierunku x i y
GetMaxColor
Funkcja ta zwraca informację o maksymalnym numerze koloru, który dostępny dla danego trybu graficznego. Jest to wielkość typu Word.
ClearDevice
Po zainicjowaniu trybu graficznego dostępna jest cała powierzchnia ekranu. Jego zawartość może być w dowolnym miejscu programu oczyszczona poprzez wywołanie bezparametrowej procedury ClearDevice, która powoduje ponadto przypisanie wszystkim parametrom graficznym ich standardowych wartości.
SetViewPort (xl, yl, x2, y2, obcięcie)
Istnieje także możliwość określenia okna służącego do wyprowadzania obrazu graficznego i wykonywania operacji graficznych tylko w obrębie tego okna. Do ustalenia rozmiarów i usytuowania bieżącego okna na ekranie służy procedura SetViewPort. W jej wywołaniu:
xl i yl oznaczają współrzędne bezwzględne, tj. odniesione do całego ekranu, lewego górnego narożnika okna,
x2 i y2 - prawego dolnego narożnika.
Muszą być przy tym spełnione warunki: 0<=xl<=x2 i 0<=yl<=y2. Wszystkie współrzędne powinny być wartościami typu Word (mogą to być wyrażenia). Ostatni argument wywołania (obcięcie) musi być typu Boolean, tj. posiadać wartość logiczną True lub False. Określa on, czy rysowanie lub wyprowadzanie tekstu ma być ograniczone do bieżącego okna (True) czy też nie (False). Można tu zastosować predefiniowanie stałe ClipOn i ClipOff.
Po ustaleniu bieżącego okna wszystkie operacje graficzne działające na współrzędnych odnosić się będą do tego okna. Jego lewy górny narożnik będzie uważany za punkt o współrzędnych (0,0). Ponowne ustalenie za bieżące okno całej powierzchni ekranu można uzyskać poprzez wywołanie procedury ClearDevice (porównaj tekst wyżej) lub procedury SetViewPort dla argumentów (O, 0, GetMaxX, GetMaxY, True). Należy w tym miejscu zaznaczyć, że zainicjowanie trybu graficznego, tj. wywołanie procedury InitGraph, oraz ustalenie trybu graficznego, poprzez wywołanie procedury SetGraphHode, powodują także przyjęcie powierzchni całego ekranu za bieżące okno.
ClearViewPort
Procedura ta umożliwia oczyszczenie aktualnego okna graficznego.
GetViewSettings (Zmienna_typu_okenkowego)
Pełne informacje o bieżącym oknie można uzyskać przez wywołanie procedury GetViewSettings, której parametr musi być predefiniowanego typu ViewPortType.
Karty graficzne EGA, VGA i Hercules pozwalają konstruować grafikę na jednej, dwu lub czterech "stronach" ekranu (w zależności od ustalonego trybu). Podczas pracy z grafiką wielostronicową elementy graficzne (rysunki, teksty) mogą być kierowane na określoną stronę, np. niewidoczną bezpośrednio na ekranie, po czym strona taka może być natychmiast wyświetlona. Technika ta jest bardzo użyteczna, zwłaszcza do konstrukcji obrazów animowanych.
SetActivePage (strona)
W celu skierowania elementu graficznego na określoną stronę należy operacją konstruującą dany element wywołać procedurę standardową SetActivePage. Wyspecyfikowany parametr strona typu Word (może to być wyrażenie) określa numer odnośnej strony.
SetVisualPage (strona)
Do wyświetlenia danej strony na ekranie służy procedura SetVisualPage. Argument strona spełnia te same warunki co poprzednio.
Właściwe procedury graficzne
Po zainicjowaniu trybu graficznego wskaźnik ekranu (niewidoczny odpowiednik migającego kursora z trybu graficznego) znajduje się w punkcie o współrzędnych (0,0), to jest lewym górnym narożniku ekranu. Pozioma oś współrzędnych ekranowych skierowana jest w prawo a pionowa w dół.
OutText(tekst)
Procedura ta służy do wyprowadzenia tekstu (wielkość typu string lub wyrażenie łańcuchowe) względem aktualnego położenia wskaźnika ekranu.
OutTextXY(x, y, Tekst)
Wywołanie tej procedury powoduje wyprowadzenie tekstu względem punktu o współrzędnych x i y - Integer. Wywołanie tych dwóch procedur jest najczęściej poprzedzone ustaleniem kroju czcionki, wielkości znaków, kierunku napisu i sposobu justacji. Określenie tych parametrów umożliwiają specjalne procedury.
SetTextStyle( Krój_Pisma, Kierunek, Rozmiar)
Argumenty wywołania tej funkcji powinny być wielkościami typu Word. Pierwszy z nich określa krój pisma. Służą do tego celu predefiniowane stałe modułu Graph.
0 - DefaultFont,
1 - TriplexFont,
2 - SmallFont,
3 - SansSerifFont,
4 - GothicFont.
Drugi z parametrów określa kierunek wyprowadzania tekstu.
0 - HorizDir - wyprowadzanie poziome od lewej do prawej,
1 - VertDir - wyprowadzanie pionowe z góry na dół.
Do określania rozmiaru pisma należy stosować liczby od 1 do 10 podając w ten sposób odpowiednie powiększenia.
SetTextJustify(Poziom, Pion)
Procedura ta, której oba argumenty są wielkościami typu Word, umożliwia wyrównywanie lub centrowanie wyprowadzanego łańcucha względem wskaźnika ekranu lub określonego punktu. Można tu stosować predefiniowane stałe:
1 - CenterText,
0 - LeftText,
2 - RightText,
0 - BottomText,
2 - TopText.
TextHeight (Łańcuch), TextWidth (Łańcuch)
Funkcje te określają w liczbie punktów ekranu wielkość wyprowadzanego łańcucha. Uwzględniany jest przy tym aktualny krój pisma i jego rozmiary.
MoveTo(x, y)
W celu przesunięcia wskaźnika ekranu do punktu o współrzędnych (x,y) należy wywołać procedurę MoveTo. W wywołaniu tym x, y muszą być typu Integer. Wskaźnik ekranu jest zawsze odniesiony do punktu (0,0) bieżącego okna.
MoveRel (dx, dy)
Inną operacją przesuwającą aktualne położenia wskaźnika ekranu jest jego przesunięcie względne o zadany wektor wzdłuż osi x i osi y. Operacja ta jest wykonywana za pomocą procedury MoveRel. Argumenty wywołania (wielkości przesunięcia względnego mierzone w pixelach) powinny być typu Integer.
GetX, GetY
Do otrzymywania współrzędnych aktualnego położenia wskaźnika ekrany względem bieżącego okna służą bezparametrowe funkcje standardowe GetX i zwracające wartości typu Integer - współrzędne x i y. Do rysowania odcinków prostych dostępne są w module Graph trzy procedury, których wszystkie argumenty wywołań powinny być wielkościami typu Integer (w ogólności mogą to być wyrażenia).
Line (xl,yl,x2,y2)
Wywołanie procedury Line powoduje narysowanie odcinka od punktu ekranu o współrzędnych (xl,yl) do punktu o współrzędnych (x2,y2). Aktualne położenie wskaźnika ekranu nie ulega przy tym zmianie.
LineRel (dx,dy)
Za pomocą LineRel otrzymuje się odcinek, którego początek znajduje się w miejscu aktualnego położenia wskaźnika ekranu, a koniec jest przesunięty w stosunku do tego punktu o wyspecyfikowane wielkości dx i dy. Wskaźnik przemieszcza się do końca rysowanego odcinka.
LineTo (x,y)
Wywołanie trzeciej procedury LineTo powoduje narysowanie odcinka od miejsca aktualnego położenia wskaźnika ekranu do punktu o podanych w wywołaniu współrzędnych (x,y). Także w tym przypadku wskaźnik ekranu zostanie przesunięty do końca narysowanego odcinka.
PutPixel (x,y,kolor) Przez wywołanie tej procedury otrzymuje się zaznaczanie na ekranie punktu gdzie x, y są wielkościami typu Integer i oznaczają współrzędne punktu w bieżącym oknie, a kolor jest argumentem typu Word określającym kolor punktu.
Rectangle(xl, yl, x2, y2)
Obraz prostokąta w wybranym oknie, narysowanego wybranym kolorem otrzymuje się przez wywołanie procedury Rectangle, gdzie xl,yl,x2,y2 są wielkościami typu Integer. Punkt (xl,yl) to lewy górny narożnik prostokąta, a (x2,y2) prawy dolny.
Circle(x,y,r)
Obraz okręgu w wybranym oknie, narysowanego wybranym kolorem otrzymuje się przez wywołanie procedury Circle, gdzie x, y są wielkościami typu Integer, r wielkością typu Word.