home *** CD-ROM | disk | FTP | other *** search
-
- {*******************************************************}
- { }
- { Turbo Pascal Version 5.0 }
- { Iterface-Dokumentation zu GRAPH }
- { }
- { Copyright (C) 1987,88 Borland International }
- { }
- {*******************************************************}
-
- unit Graph;
-
- interface
-
- const
- { Mögliche Ergebnisse von GraphResult: }
- grOk = 0; { fehlerfreie Ausführung }
- grNoInitGraph = -1; { Grafikpaket nicht initialisiert }
- grNotDetected = -2; { kein grafikfähiger Adapter vorhanden
- bzw. gewünschter Modus nicht setzbar }
- grFileNotFound = -3; { Grafik-Treiber (*.BGI) nicht gefunden }
- grInvalidDriver = -4; { Grafik-Treiberdatei defekt/ungültig }
- grNoLoadMem = -5; { nicht genug Platz im Speicher für Treiber }
- grNoScanMem = -6; { nicht genug Speicherplatz für FillPoly }
- grNoFloodMem = -7; { nicht genug Speicherplatz für FloodFill }
- grFontNotFound = -8; { Zeichensatz-Datei (*.CHR) nicht gefunden }
- grNoFontMem = -9; { nicht genug Speicherplatz für Zeichensatz }
- grInvalidMode = -10; { Grafikmodus vom Treiber nicht unterstützt }
-
- grError = -11; { *** ungültiger Parameter beim *** }
- { *** Aufruf einer Grafik-Routine *** }
- grIOerror = -12; { I/O-Fehler beim Laden einer .BGI- oder
- .CHR-Datei }
- grInvalidFont = -13; { Zeichensatz-Datei ungültig/zerstört }
- grInvalidFontNum = -14; { ungültige Kennziffer für Zeichensatz }
-
- { Kennziffern der Grafiktreiber }
- CurrentDriver = -128; { momentaner Treiber - Parameter für GetModeRange }
- Detect = 0; { automatische Erkennung }
- CGA = 1;
- MCGA = 2; { PS/2, Modell 30 }
- EGA = 3;
- EGA64 = 4;
- EGAMono = 5;
- IBM8514 = 6;
- HercMono = 7;
- ATT400 = 8;
- VGA = 9;
- PC3270 = 10;
-
- { Mögliche Grafikmodi der einzelnen Treiber }
- CGAC0 = 0; { 320x200 Palette 0: Hellgrün, Hellrot, Gelb; 1 Seite }
- CGAC1 = 1; { 320x200 Palette 1: Helltürkis, Hell-Magenta, Weiß }
- CGAC2 = 2; { 320x200 Palette 2: Grün, Rot, Braun }
- CGAC3 = 3; { 320x200 Palette 3: Türkis, Magenta, Hellgrau }
- CGAHi = 4; { 640x200 S/W; 1 Seite }
-
- MCGAC0 = 0; { 320x200 Palette 0: Hellgrün, Hellrot, Gelb; 1 Seite }
- MCGAC1 = 1; { 320x200 Palette 1: Helltürkis, Hell-Magenta, Weiß }
- MCGAC2 = 2; { 320x200 Palette 2: Grün, Rot, Braun }
- MCGAC3 = 3; { 320x200 Palette 3: Türkis, Magenta, Hellgrau }
- MCGAMed = 4; { 640x200 S/W; 1 Seite }
- MCGAHi = 5; { 640x480 S/W; 1 Seite }
-
- EGALo = 0; { 640x200 16 Farben, 4 Seiten }
- EGAHi = 1; { 640x350 16 Farben, 2 Seiten }
- EGA64Lo = 0; { 640x200 16 Farben, 1 Seite }
- EGA64Hi = 1; { 640x350 4 Farben, 1 Seite }
- EGAMonoHi = 3; { 640x350 S/W; 1 Seite mit 64K, 4 Seiten mit 256 K }
- HercMonoHi = 0; { 720x348 S/W, 2 Seiten }
-
- ATT400C0 = 0; { 320x200 Palette 0: Hellgrün, Hellrot, Gelb; 1 Seite }
- ATT400C1 = 1; { 320x200 Palette 1: Helltürkis, Hell-Magenta, Weiß }
- ATT400C2 = 2; { 320x200 Palette 2: Grün, Rot, Braun }
- ATT400C3 = 3; { 320x200 Palette 3: Türkis, Magenta, Hellgrau }
- ATT400Med = 4; { 640x200 S/W; 1 Seite }
- ATT400Hi = 5; { 640x480 S/W; 1 Seite }
-
- VGALo = 0; { 640x200 16 Farben, 4 Seiten }
- VGAMed = 1; { 640x350 16 Farben, 2 Seiten }
- VGAHi = 2; { 640x480 16 Farben, 1 Seite }
-
- PC3270Hi = 0; { 720x350 1 Seite }
-
- IBM8514LO = 0; { 640x480 mit 256 Farben, 1 Seite }
- IBM8514HI = 1; { 1024x768 mit 256 Farben, 1 Seite }
-
- { Zeichenfarben }
- Black = 0; { Schwarz }
- Blue = 1; { Blau }
- Green = 2; { Grün }
- Cyan = 3; { Türkis }
- Red = 4; { Rot }
- Magenta = 5; { Magentarot }
- Brown = 6; { Braun }
- LightGray = 7; { Hellgrau }
- DarkGray = 8; { Dunkelgrau }
- LightBlue = 9; { Hellblau }
- LightGreen = 10; { Hellgrün }
- LightCyan = 11; { helles Türkis }
- LightRed = 12; { Hellrot }
- LightMagenta = 13; { helles Magentarot }
- Yellow = 14; { Gelb }
- White = 15; { Weiß }
-
- { Farben für den IBM 8514 zur Simulation der EGA-Palette }
- EGABlack = 0; { Normalfarben }
- EGABlue = 1;
- EGAGreen = 2;
- EGACyan = 3;
- EGARed = 4;
- EGAMagenta = 5;
- EGABrown = 20;
- EGALightgray = 7;
- EGADarkgray = 56; { helle Farben }
- EGALightblue = 57;
- EGALightgreen = 58;
- EGALightcyan = 59;
- EGALightred = 60;
- EGALightmagenta = 61;
- EGAYellow = 62;
- EGAWhite = 63;
-
- { Linienarten -und breiten für Get/SetLineStyle }
- SolidLn = 0; { durchgezogen }
- DottedLn = 1; { gepunktet }
- CenterLn = 2; { Strich Punkt Strich }
- DashedLn = 3; { gestrichelt }
- UserBitLn = 4; { benutzerdefiniert (mit "Pattern" bei SetLineStyle) }
-
-
- NormWidth = 1; { normale Breite (1 Pixel) }
- ThickWidth = 3; { drei Pixel }
-
- { Set/GetTextStyle }
- DefaultFont = 0; { 8x8 Bit pixelweise definiert }
-
- TriplexFont = 1; { Vektor-Zeichensätze }
- SmallFont = 2;
- SansSerifFont = 3;
- GothicFont = 4;
-
- HorizDir = 0; { von links nach rechts }
- VertDir = 1; { von unten nach oben }
-
- UserCharSize = 0; { benutzerdefinierte Zeichengröße }
-
- { Für das Abschneiden von Linien ("clipping") }
- ClipOn = True;
- ClipOff = False;
-
- { Für Bar3D }
- TopOn = True; { "Deckel" wird gezeichnet }
- TopOff = False; { wird nicht gezeichnet }
-
-
- { Füll-Muster für Get/SetFillStyle: }
- EmptyFill = 0; { Füllen mit der Hintergrundfarbe }
- SolidFill = 1; { Füllen mit der Zeichenfarbe }
- LineFill = 2; { --- }
- LtSlashFill = 3; { /// }
- SlashFill = 4; { /// mit dicken Linien }
- BkSlashFill = 5; { \\\ mit dicken Linien }
- LtBkSlashFill = 6; { \\\ }
- HatchFill = 7; { leicht schraffiert }
- XHatchFill = 8; { stark schraffiert, überkreuzend }
- InterleaveFill = 9; { abwechselnde Linien }
- WideDotFill = 10; { weit auseinanderstehende Punkte }
- CloseDotFill = 11; { dicht beieinanderstehende Punkte }
- UserFill = 12; { benutzerdefiniert }
-
- { BitBlt ("Bit Block Transfer") - Möglichkeiten für PutImage }
- NormalPut = 0; { MOV } { wg. Kompatibilität zur 4.0 }
- CopyPut = 0; { MOV }
- XORPut = 1; { XOR }
- OrPut = 2; { OR }
- AndPut = 3; { AND }
- NotPut = 4; { NOT }
-
- { Horizontale / vertikale Justierung mit SetTextJustify }
- LeftText = 0; { linksbündig }
- CenterText = 1; { zentriert }
- RightText = 2; { rechtsbündig }
-
- BottomText = 0; { unten abschließend }
- { CenterText = 1; bereits definiert }
- TopText = 2; { oben abschließend }
-
-
- const
- MaxColors = 15;
- type
- PaletteType = record
- Size : Byte;
- Colors : array[0..MaxColors] of ShortInt;
- end;
-
- LineSettingsType = record
- LineStyle : Word;
- Pattern : Word;
- Thickness : Word;
- end;
-
- TextSettingsType = record
- Font : Word;
- Direction : Word;
- CharSize : Word;
- Horiz : Word;
- Vert : Word;
- end;
-
- FillSettingsType = record { vordefiniertes Füll-Muster }
- Pattern : Word;
- Color : Word;
- end;
-
- FillPatternType = array[1..8] of Byte; { benutzerdefinertes Füll-Muster }
-
- PointType = record
- X, Y : Integer;
- end;
-
- ViewPortType = record
- x1, y1, x2, y2 : Integer;
- Clip : Boolean;
- end;
-
- ArcCoordsType = record
- X, Y : Integer;
- Xstart, Ystart : Integer;
- Xend, Yend : Integer;
- end;
-
-
- var
- GraphGetMemPtr : Pointer; { zeigt auf GraphGetMem und kann auf eine
- eigene Routine gesetzt werden }
- GraphFreeMemPtr : Pointer; { zeigt auf GraphFreeMem }
-
- { ------------------- Routinen ---------------------- }
-
- { *** Fehlerbehandlung *** }
- function GraphErrorMsg(ErrorCode : Integer) : String;
- function GraphResult : Integer;
-
- { *** Prüfung der Hardware, Initialisierung und Setzen der Grafikmodi *** }
- procedure DetectGraph(var GraphDriver, GraphMode : Integer);
- function GetDriverName : string;
-
- procedure InitGraph(var GraphDriver : Integer;
- var GraphMode : Integer;
- PathToDriver : String);
-
- function RegisterBGIfont(Font : pointer) : Integer;
- function RegisterBGIdriver(Driver : pointer) : Integer;
- function InstallUserDriver(DriverFileName : string;
- AutoDetectPtr : pointer) : Integer;
- function InstallUserFont(FontFileName : string) : Integer;
- procedure SetGraphBufSize(BufSize : Word);
- function GetMaxMode : Integer;
- procedure GetModeRange(GraphDriver : Integer; var LoMode, HiMode : Integer);
- function GetModeName(GraphMode : Integer) : string;
- procedure SetGraphMode(Mode : Integer);
- function GetGraphMode : Integer;
- procedure GraphDefaults;
- procedure RestoreCrtMode;
- procedure CloseGraph;
-
- function GetX : Integer;
- function GetY : Integer;
- function GetMaxX : Integer;
- function GetMaxY : Integer;
-
- { *** Bildschirm, Zeichenfenster und Speicherseiten *** }
- procedure ClearDevice;
- procedure SetViewPort(x1, y1, x2, y2 : Integer; Clip : Boolean);
- procedure GetViewSettings(var ViewPort : ViewPortType);
- procedure ClearViewPort;
- procedure SetVisualPage(Page : Word);
- procedure SetActivePage(Page : Word);
-
- { *** Einzelne Pixel und pixelweise definierte Bildausschnitte *** }
- procedure PutPixel(X, Y : Integer; Pixel : Word);
- function GetPixel(X, Y : Integer) : Word;
- function ImageSize(x1, y1, x2, y2 : Integer) : Word;
- procedure GetImage(x1, y1, x2, y2 : Integer; var BitMap);
- procedure PutImage(X, Y : Integer; var BitMap; BitBlt : Word);
-
- { *** Linien *** }
- procedure SetWriteMode(WriteMode : Integer);
- procedure LineTo(X, Y : Integer);
- procedure LineRel(Dx, Dy : Integer);
- procedure MoveTo(X, Y : Integer);
- procedure MoveRel(Dx, Dy : Integer);
- procedure Line(x1, y1, x2, y2 : Integer);
- procedure GetLineSettings(var LineInfo : LineSettingsType);
- procedure SetLineStyle(LineStyle : Word;
- Pattern : Word;
- Thickness : Word);
-
- { *** Polygone, Flächenfüllung und grafische Objekte *** }
- procedure Rectangle(x1, y1, x2, y2 : Integer);
- procedure Bar(x1, y1, x2, y2 : Integer);
- procedure Bar3D(x1, y1, x2, y2 : Integer; Depth : Word; Top : Boolean);
- procedure DrawPoly(NumPoints : Word; var PolyPoints);
- procedure FillPoly(NumPoints : Word; var PolyPoints);
- procedure GetFillSettings(var FillInfo : FillSettingsType);
- procedure GetFillPattern(var FillPattern : FillPatternType);
- procedure SetFillStyle(Pattern : Word; Color : Word);
- procedure SetFillPattern(Pattern : FillPatternType; Color : Word);
- procedure FloodFill(X, Y : Integer; Border : Word);
-
- { *** Kreise, Kreisauschnitte und andere Kurven *** }
- procedure Arc(X, Y : Integer; StAngle, EndAngle, Radius : Word);
- procedure GetArcCoords(var ArcCoords : ArcCoordsType);
- procedure Circle(X, Y : Integer; Radius : Word);
- procedure Ellipse(X, Y : Integer;
- StAngle, EndAngle : Word;
- XRadius, YRadius : Word);
- procedure FillEllipse(X, Y : Integer;
- XRadius, YRadius : Word);
- procedure GetAspectRatio(var Xasp, Yasp : Word);
- procedure SetAspectRatio(Xasp, Yasp : Word);
- procedure PieSlice(X, Y : Integer; StAngle, EndAngle, Radius : Word);
- procedure Sector(X, Y : Integer;
- StAngle, EndAngle,
- XRadius, YRadius : Word);
-
-
- { *** Farben und Farb-Paletten *** }
- procedure SetBkColor(ColorNum : Word);
- procedure SetColor(Color : Word);
- function GetBkColor : Word;
- function GetColor : Word;
- procedure SetAllPalette(var Palette);
- procedure SetPalette(ColorNum : Word; Color : shortint);
- procedure GetPalette(var Palette : PaletteType);
- function GetPaletteSize : Integer;
- procedure GetDefaultPalette(var Palette : PaletteType);
- function GetMaxColor : Word;
- procedure SetRGBPalette(ColorNum, RedValue, GreenValue, BlueValue : Integer);
-
- { *** Textausgabe *** }
- procedure GetTextSettings(var TextInfo : TextSettingsType);
- procedure OutText(TextString : string);
- procedure OutTextXY(X, Y : Integer; TextString : string);
- procedure SetTextJustify(Horiz, Vert : Word);
- procedure SetTextStyle(Font, Direction : Word; CharSize : Word);
- procedure SetUserCharSize(MultX, DivX, MultY, DivY : Word);
- function TextHeight(TextString : string) : Word;
- function TextWidth(TextString : string) : Word;
-
-