home *** CD-ROM | disk | FTP | other *** search
-
- { Copyright (c) 1985, 87 by Borland International, Inc. }
-
- program GrLink;
- { Die Grafik-Treiber und -Zeichensätze sind normalerweise in separaten
- Dateien gespeichert (.BGI und .CHR), sie werden zur Laufzeit eines
- Programms von der Diskette geladen.
- GRLINK demonstriert, wie sich diese Dateien direkt in ein Programm
- aufnehmen (d.h. in eine .EXE-Datei einbinden) lassen.
-
- Zum Start von GRLINK werden die folgenden Dateien und Programme benötigt,
- die sich sämtlich im momentan gesetzten Directory befinden sollten:
-
- GRLINK.PAS (Disk III)
- GRLINK.MAK - MAKE-Datei für GRLINK ( " " )
- DRIVERS.PAS - Unit mit den Grafik-Treibern ( " " )
- *.BGI - die Grafik-Treiber (Einzeldateien ( " " )
- FONTS.PAS - Unit mit den Grafik-Zeichensätzen ( " " )
- *.CHR - die Zeichensätze (Einzeldateien) ( " " )
- GRAPH.TPU - Unit Graph ( " " )
-
- MAKE.EXE ( Disk II )
- BINOBJ.EXE - verwandelt .CHR und .BGI-Dateien
- in .OBJ-Dateien und ermöglicht so
- ihre Aufnahme in Programme ( " " )
-
- TPC.EXE - Kommandozeilen-Version des Compilers (Disk I)
-
- ------------------------------------
- START
- ------------------------------------
- 1. Von der DOS-Kommandoebene aus geben Sie den Befehl
-
- make -fgrlink.mak
-
- Dadurch wird MAKE mit der Datei GRLINK.MAK aufgerufen und führt die
- folgenden Schritte aus:
- a) Konvertierung der Grafik-Treiber (.BGI) und -Zeichensätze (.CHR)
- in .OBJ-Dateien über entsprechende Aufrufe von BINOBJ.EXE.
- b) Compilierung der Units DRIVERS.PAS und FONTS.PAS als .TPU-Dateien.
- c) Compilierung von GRLINK.PAS als .EXE-Datei.
-
- 2. GRLINK.EXE enthält danach sämtliche Grafik-Treiber und -Zeichensätze
- direkt, d.h. ist auch ohne das Vorhandensein von .BGI- und .CHR-Dateien
- mit sämtlichen Video-Adaptern lauffähig, die das Unit Graph unterstützt
- (CGA, EGA, EGA 64 K, EGA (mono), Hercules (mono), VGA, MCGA, IBM 3270 PC
- und AT&T 6400).
-
- ------------------------------------
- EINIGE ERLÄUTERUNGEN
- ------------------------------------
-
- GRLINK.PAS führt DRIVERS.TPU und FONTS.TPU mit einer uses-Anweisung auf:
-
- uses Drivers, Fonts;
-
- Beim Programmstart werden die Grafik-Treiber mit der Prozedur
- RegisterBGIDriver "registriert". Zur Demonstration wendet GRLINK diese
- Prozedur auf alle vorhandenen Treiber an). Analog dazu werden sämtliche
- vorhandenen Zeichensätze mit der Prozedur RegisterBGIFont "registriert".
- Schließlich folgt der (sehr kurz gehaltene) "Beweis", daß die Sache
- auch so funktioniert, wie sie sollte.
-
- Für die Verwendung von GRLINK in eigenen Programmen sollten Sie die
- "Registrierung" der nicht verwendeten Treiber und Zeichensätze aus
- dem Programm entfernen (z.B. durch Einschließen in Kommentarklammern).
-
- GRAPH.DOC (auf der Diskette III) enthält eine detaillierte Beschreibung
- der Prozeduren RegisterBGIDriver und RegisterBGIFont.
- }
-
- uses Graph, { das Grafikpaket }
- Drivers, { enthält die Grafik-Treiber als Unit }
- Fonts; { enthält die Zeichensätze als Unit }
- var
- GraphDriver, GraphMode, Error : Integer;
-
- procedure Abort(Msg : string);
- begin
- Writeln(Msg, ': ', GraphErrorMsg(GraphResult));
- Halt(1);
- end;
-
- begin
- { "Registrierung" aller Grafik-Treiber (aus DRIVERS.TPU) }
- if RegisterBGIdriver(@CGADriverProc) < 0 then Abort('CGA');
- if RegisterBGIdriver(@EGAVGADriverProc) < 0 then Abort('EGA/VGA');
- if RegisterBGIdriver(@HercDriverProc) < 0 then Abort('Herc');
- if RegisterBGIdriver(@ATTDriverProc) < 0 then Abort('AT&T');
- if RegisterBGIdriver(@PC3270DriverProc) < 0 then Abort('PC 3270');
-
-
- { "Registrierung" aller Zeichensätze (aus FONTS.TPU) }
- if RegisterBGIfont(@GothicFontProc) < 0 then Abort('Gothic');
- if RegisterBGIfont(@SansSerifFontProc) < 0 then Abort('SansSerif');
- if RegisterBGIfont(@SmallFontProc) < 0 then Abort('Small');
- if RegisterBGIfont(@TriplexFontProc) < 0 then Abort('Triplex');
-
-
- GraphDriver := Detect; { automatische Erkennung }
- InitGraph(GraphDriver, GraphMode, ''); { Aktivierung des Grafikpakets }
- if GraphResult <> grOk then { Fehler? }
- begin
- Writeln('Grafik-Initialisierungsfehler: ', GraphErrorMsg(GraphDriver));
- Halt(1);
- end;
-
- MoveTo(5, 5);
- OutText('Grafik-Treiber und -Zeichensätze sind');
- MoveTo(5, 20);
- SetTextStyle(GothicFont, HorizDir, 4);
- OutText('direkt ');
- SetTextStyle(SmallFont, HorizDir, 4);
- OutText('in dieser ');
- SetTextStyle(TriplexFont, HorizDir, 4);
- OutText('.EXE-Datei ');
- SetTextStyle(SansSerifFont, VertDir, 4);
- OutText('enthalten!');
- Rectangle(0, 0, GetX +4 , GetY + TextWidth('enthalten!') + 3);
- SetTextStyle(GothicFont, HorizDir, 4);
- OutTextXY(0,GetMaxY-TextHeight('M'), 'Weiter mit <RETURN>...');
- Readln;
- CloseGraph;
- end.