home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / turbo4 / grlink.pas < prev    next >
Pascal/Delphi Source File  |  1987-12-08  |  5KB  |  125 lines

  1.  
  2. {           Copyright (c) 1985, 87 by Borland International, Inc.            }
  3.  
  4. program GrLink;
  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.   GRLINK demonstriert, wie sich diese Dateien direkt in ein Programm
  9.   aufnehmen (d.h. in eine .EXE-Datei einbinden) lassen.
  10.  
  11.   Zum Start von GRLINK werden die folgenden Dateien und Programme benötigt,
  12.   die sich sämtlich im momentan gesetzten Directory befinden sollten:
  13.  
  14.   GRLINK.PAS                                         (Disk III)
  15.   GRLINK.MAK    - MAKE-Datei für GRLINK              (  " " )
  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 -fgrlink.mak
  35.  
  36.      Dadurch wird MAKE mit der Datei GRLINK.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 GRLINK.PAS als .EXE-Datei.
  42.  
  43.   2. GRLINK.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.     GRLINK.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 Prozedur
  58.     RegisterBGIDriver "registriert". Zur Demonstration wendet GRLINK diese
  59.     Prozedur auf alle vorhandenen Treiber an). Analog dazu werden sämtliche
  60.     vorhandenen Zeichensätze mit der Prozedur 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 GRLINK 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.     GRAPH.DOC (auf der Diskette III) enthält eine detaillierte Beschreibung
  69.     der Prozeduren RegisterBGIDriver und RegisterBGIFont.
  70. }
  71.  
  72. uses Graph,   { das Grafikpaket }
  73.      Drivers, { enthält die Grafik-Treiber als Unit }
  74.      Fonts;   { enthält die Zeichensätze als Unit }
  75. var
  76.   GraphDriver, GraphMode, Error : Integer;
  77.  
  78. procedure Abort(Msg : string);
  79. begin
  80.   Writeln(Msg, ': ', GraphErrorMsg(GraphResult));
  81.   Halt(1);
  82. end;
  83.  
  84. begin
  85.   { "Registrierung" aller Grafik-Treiber (aus DRIVERS.TPU) }
  86.   if RegisterBGIdriver(@CGADriverProc) < 0 then     Abort('CGA');
  87.   if RegisterBGIdriver(@EGAVGADriverProc) < 0 then  Abort('EGA/VGA');
  88.   if RegisterBGIdriver(@HercDriverProc) < 0 then    Abort('Herc');
  89.   if RegisterBGIdriver(@ATTDriverProc) < 0 then     Abort('AT&T');
  90.   if RegisterBGIdriver(@PC3270DriverProc) < 0 then  Abort('PC 3270');
  91.  
  92.  
  93.   { "Registrierung" aller Zeichensätze (aus FONTS.TPU) }
  94.   if RegisterBGIfont(@GothicFontProc) < 0 then      Abort('Gothic');
  95.   if RegisterBGIfont(@SansSerifFontProc) < 0 then   Abort('SansSerif');
  96.   if RegisterBGIfont(@SmallFontProc) < 0 then       Abort('Small');
  97.   if RegisterBGIfont(@TriplexFontProc) < 0 then     Abort('Triplex');
  98.  
  99.  
  100.   GraphDriver := Detect;                  { automatische Erkennung }
  101.   InitGraph(GraphDriver, GraphMode, '');  { Aktivierung des Grafikpakets }
  102.   if GraphResult <> grOk then             { Fehler? }
  103.   begin
  104.     Writeln('Grafik-Initialisierungsfehler: ', GraphErrorMsg(GraphDriver));
  105.     Halt(1);
  106.   end;
  107.  
  108.   MoveTo(5, 5);
  109.   OutText('Grafik-Treiber und -Zeichensätze sind');
  110.   MoveTo(5, 20);
  111.   SetTextStyle(GothicFont, HorizDir, 4);
  112.   OutText('direkt ');
  113.   SetTextStyle(SmallFont, HorizDir, 4);
  114.   OutText('in dieser ');
  115.   SetTextStyle(TriplexFont, HorizDir, 4);
  116.   OutText('.EXE-Datei  ');
  117.   SetTextStyle(SansSerifFont, VertDir, 4);
  118.   OutText('enthalten!');
  119.   Rectangle(0, 0, GetX +4 , GetY + TextWidth('enthalten!') + 3);
  120.   SetTextStyle(GothicFont, HorizDir, 4);
  121.   OutTextXY(0,GetMaxY-TextHeight('M'), 'Weiter mit <RETURN>...');
  122.   Readln;
  123.   CloseGraph;
  124. end.
  125.