home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
turbo5
/
graph.doc
< prev
next >
Wrap
Text File
|
1988-10-09
|
13KB
|
354 lines
{*******************************************************}
{ }
{ 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;