

          Anwendungsbeispiel zu den Textausgabe-Routinen
          


So, um Euch nun noch die Anwendung der Textausgabe-Routis zu
zeigen, habe ich hier ein kleines Prog geschrieben, das den Ge-
schwindigkeitszuwachs bei der Verwendung dieser Routinen gegen-
ber dem bisherigen OutTextXY demonstrieren soll. Auf meinem
Rechner luft das vergleichbare G_TranText() etwa 6 mal so
schnell, und das obwohl man gleichzeitig noch die Farbe whlen
kann (mu bei OutTextXY separat geschehen) und der 14'er anstelle
des 8'er Zeichensatzes benutzt wird (es werden also 6 Bytes pro
Zeichen mehr ausgegeben).
Die Unit 'TIME' habe ich beim letzten mal schon vorgestellt,
liegt aber auch diesmal in PAS/TPU-Form bei.


PROGRAM TestGrfText;

USES CRT,GRAPH,TIME;

VAR Zeit1,Zeit2 : REAL;
    i           : WORD;

{$F+}

 {$L grftext.obj}
 PROCEDURE T_TranText(x,y : WORD; VF: BYTE; Text : STRING);
  EXTERNAL;
 PROCEDURE G_TranText(x,y : WORD; VF: BYTE; Text : STRING);
  EXTERNAL;
 PROCEDURE T_SolidText(x,y : WORD; VF,HF: BYTE; Text : STRING);
  EXTERNAL;
 PROCEDURE G_SolidText(x,y : WORD; VF,HF: BYTE; Text : STRING);
  EXTERNAL;

{$F-}

PROCEDURE Init12h;
VAR d : INTEGER;
BEGIN
 d := 0;
 InitGraph(d,d,'bgi\'); {Eigenen Pfad angeben!}
END;

BEGIN
 WriteLn('Zuerst wird der String ''MicroCode'' 10000 mal mit'+
                                        'OutTextXY ausgegeben.');
 WriteLn('Dann wird das Gleiche mit G_TranText wiederholt.');
 WriteLn('Bitte lange genug warten und jetzt Enter drcken');
 ReadLn;
 Init12h;
  Zeit1 := Timer;
  FOR i := 1 TO 10000 DO OutTextXY(10,10,'MicroCode');
  Zeit1 := Timer - Zeit1;
  Zeit2 := Timer;
  FOR i := 1 TO 10000 DO G_TranText(10,20,15,'MicroCode');
  Zeit2 := Timer - Zeit2;
 CloseGraph;
 WriteLn('So, das war''s. Hier die Zeiten:');
 WriteLn('OutTextXY : ',Zeit1:1:4);
 WriteLn('G_TranText: ',Zeit2:1:4);
 ReadLn;
END.


Tja, sieht noch nach nichts aus, aber probiert's am besten mal
aus. Wenn nichts dazwischen gekommen ist, heit das Prog
TextTest.PAS und sollte im SOURCE-Pfad zu finden sein.


                                                 Kemil.

