home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / turbo5 / bgilink.pas < prev    next >
Pascal/Delphi Source File  |  1988-10-09  |  5KB  |  126 lines

  1.  
  2. {           Copyright (c) 1985, 88 by Borland International, Inc.            }
  3.  
  4. program BGILink;
  5. { Die Grafik-Treiber und -Zeichensätze sind normalerweise in separaten
  6.   Dateien gespeichert (.BGI und .CHR), sie werden zur Laufzeit eines
  7.   Programms von der Diskette geladen.
  8.   BGILINK demonstriert, wie sich diese Dateien direkt in ein Programm
  9.   aufnehmen (d.h. in eine .EXE-Datei einbinden) lassen.
  10.  
  11.   Zum Start von BGILINK werden die folgenden Dateien und Programme benötigt,
  12.   die sich sämtlich im momentan gesetzten Directory befinden sollten:
  13.  
  14.   BGILINK.PAS                                        (Disk III)
  15.   BGILINK.MAK   - MAKE-Datei für BGILINK             (  " " )
  16.   DRIVERS.PAS   - Unit mit den Grafik-Treibern       (  " " )
  17.   *.BGI         - die Grafik-Treiber (Einzeldateien  (  " " )
  18.   FONTS.PAS     - Unit mit den Grafik-Zeichensätzen  (  " " )
  19.   *.CHR         - die Zeichensätze (Einzeldateien)   (  " " )
  20.   GRAPH.TPU     - Unit Graph                         (  " " )
  21.  
  22.   MAKE.EXE                                           ( Disk II )
  23.   BINOBJ.EXE    - verwandelt .CHR und .BGI-Dateien
  24.                   in .OBJ-Dateien und ermöglicht so
  25.                   ihre Aufnahme in Programme         ( " " )
  26.  
  27.   TPC.EXE       - Kommandozeilen-Version des Compilers (Disk I)
  28.  
  29. ------------------------------------
  30.   START
  31. ------------------------------------
  32.   1. Von der DOS-Kommandoebene aus geben Sie den Befehl
  33.  
  34.      make -fBGILINK.mak
  35.  
  36.      Dadurch wird MAKE mit der Datei BGILINK.MAK aufgerufen und führt die
  37.      folgenden Schritte aus:
  38.      a) Konvertierung der Grafik-Treiber (.BGI) und -Zeichensätze (.CHR)
  39.         in .OBJ-Dateien über entsprechende Aufrufe von BINOBJ.EXE.
  40.      b) Compilierung der Units DRIVERS.PAS und FONTS.PAS als .TPU-Dateien.
  41.      c) Compilierung von BGILINK.PAS als .EXE-Datei.
  42.  
  43.   2. BGILINK.EXE enthält danach sämtliche Grafik-Treiber und -Zeichensätze
  44.      direkt, d.h. ist auch ohne das Vorhandensein von .BGI- und .CHR-Dateien
  45.      mit sämtlichen Video-Adaptern lauffähig, die das Unit Graph unterstützt
  46.      (CGA, EGA, EGA 64 K, EGA (mono), Hercules (mono), VGA, MCGA, IBM 3270 PC
  47.       und AT&T 6400).
  48.  
  49. ------------------------------------
  50.   EINIGE ERLÄUTERUNGEN
  51. ------------------------------------
  52.  
  53.     BGILINK.PAS führt DRIVERS.TPU und FONTS.TPU mit einer uses-Anweisung auf:
  54.  
  55.       uses Drivers, Fonts;
  56.  
  57.     Beim Programmstart werden die Grafik-Treiber mit der Funktion
  58.     RegisterBGIDriver "registriert". Zur Demonstration wendet BGILINK diese
  59.     Routine auf alle vorhandenen Treiber an). Analog dazu werden sämtliche
  60.     vorhandenen Zeichensätze mit der Funktion RegisterBGIFont "registriert".
  61.     Schließlich folgt der (sehr kurz gehaltene) "Beweis", daß die Sache
  62.     auch so funktioniert, wie sie sollte.
  63.  
  64.     Für die Verwendung von BGILINK in eigenen Programmen sollten Sie die
  65.     "Registrierung" der nicht verwendeten Treiber und Zeichensätze aus
  66.     dem Programm entfernen (z.B. durch Einschließen in Kommentarklammern).
  67.  
  68.     Weitere Informationen zu RegisterBGIDriver und RegisterBGIFont
  69.     finden Sie im Referenzteil des Handbuchs; Informationen zum Programm
  70.     BINOBJ in den Anhängen.
  71. }
  72.  
  73. uses Graph,   { das Grafikpaket }
  74.      Drivers, { enthält die Grafik-Treiber als Unit }
  75.      Fonts;   { enthält die Zeichensätze als Unit }
  76. var
  77.   GraphDriver, GraphMode, Error : Integer;
  78.  
  79. procedure Abort(Msg : string);
  80. begin
  81.   Writeln(Msg, ': ', GraphErrorMsg(GraphResult));
  82.   Halt(1);
  83. end;
  84.  
  85. begin
  86.   { "Registrierung" aller Grafik-Treiber (aus DRIVERS.TPU) }
  87.   if RegisterBGIdriver(@CGADriverProc) < 0 then     Abort('CGA');
  88.   if RegisterBGIdriver(@EGAVGADriverProc) < 0 then  Abort('EGA/VGA');
  89.   if RegisterBGIdriver(@HercDriverProc) < 0 then    Abort('Herc');
  90.   if RegisterBGIdriver(@ATTDriverProc) < 0 then     Abort('AT&T');
  91.   if RegisterBGIdriver(@PC3270DriverProc) < 0 then  Abort('PC 3270');
  92.  
  93.  
  94.   { "Registrierung" aller Zeichensätze (aus FONTS.TPU) }
  95.   if RegisterBGIfont(@GothicFontProc) < 0 then      Abort('Gothic');
  96.   if RegisterBGIfont(@SansSerifFontProc) < 0 then   Abort('SansSerif');
  97.   if RegisterBGIfont(@SmallFontProc) < 0 then       Abort('Small');
  98.   if RegisterBGIfont(@TriplexFontProc) < 0 then     Abort('Triplex');
  99.  
  100.  
  101.   GraphDriver := Detect;                  { automatische Erkennung }
  102.   InitGraph(GraphDriver, GraphMode, '');  { Aktivierung des Grafikpakets }
  103.   if GraphResult <> grOk then             { Fehler? }
  104.   begin
  105.     Writeln('Grafik-Initialisierungsfehler: ', GraphErrorMsg(GraphDriver));
  106.     Halt(1);
  107.   end;
  108.  
  109.   MoveTo(5, 5);
  110.   OutText('Grafik-Treiber und -Zeichensätze sind');
  111.   MoveTo(5, 20);
  112.   SetTextStyle(GothicFont, HorizDir, 4);
  113.   OutText('direkt ');
  114.   SetTextStyle(SmallFont, HorizDir, 4);
  115.   OutText('in dieser ');
  116.   SetTextStyle(TriplexFont, HorizDir, 4);
  117.   OutText('.EXE-Datei  ');
  118.   SetTextStyle(SansSerifFont, VertDir, 4);
  119.   OutText('enthalten!');
  120.   Rectangle(0, 0, GetX +4 , GetY + TextWidth('enthalten!') + 3);
  121.   SetTextStyle(GothicFont, HorizDir, 4);
  122.   OutTextXY(0,GetMaxY-TextHeight('M'), 'Weiter mit <RETURN>...');
  123.   Readln;
  124.   CloseGraph;
  125. end.
  126.