home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turbo Toolbox
/
Turbo_Toolbox.iso
/
turbo5
/
bgilink.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1988-10-09
|
5KB
|
126 lines
{ Copyright (c) 1985, 88 by Borland International, Inc. }
program BGILink;
{ 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.
BGILINK demonstriert, wie sich diese Dateien direkt in ein Programm
aufnehmen (d.h. in eine .EXE-Datei einbinden) lassen.
Zum Start von BGILINK werden die folgenden Dateien und Programme benötigt,
die sich sämtlich im momentan gesetzten Directory befinden sollten:
BGILINK.PAS (Disk III)
BGILINK.MAK - MAKE-Datei für BGILINK ( " " )
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 -fBGILINK.mak
Dadurch wird MAKE mit der Datei BGILINK.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 BGILINK.PAS als .EXE-Datei.
2. BGILINK.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
------------------------------------
BGILINK.PAS führt DRIVERS.TPU und FONTS.TPU mit einer uses-Anweisung auf:
uses Drivers, Fonts;
Beim Programmstart werden die Grafik-Treiber mit der Funktion
RegisterBGIDriver "registriert". Zur Demonstration wendet BGILINK diese
Routine auf alle vorhandenen Treiber an). Analog dazu werden sämtliche
vorhandenen Zeichensätze mit der Funktion RegisterBGIFont "registriert".
Schließlich folgt der (sehr kurz gehaltene) "Beweis", daß die Sache
auch so funktioniert, wie sie sollte.
Für die Verwendung von BGILINK 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).
Weitere Informationen zu RegisterBGIDriver und RegisterBGIFont
finden Sie im Referenzteil des Handbuchs; Informationen zum Programm
BINOBJ in den Anhängen.
}
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.