home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / insidetp / 1990_08 / test.pas < prev    next >
Pascal/Delphi Source File  |  1990-06-20  |  2KB  |  91 lines

  1. {************************************************
  2. * TEST.PAS - Test frame to demonstrate device   *
  3. * independent graphics technique.               *
  4. ************************************************}
  5.  
  6. USES
  7.   GRAPH,Crt,DOS;
  8.  
  9. PROCEDURE DrawStar(X,Y,Sx,Sy,C :Integer); FORWARD;
  10.  
  11. {$Define Test1}
  12.  
  13. {$IfDef Test1}
  14.     {$I Test1}
  15. {$EndIf}
  16.  
  17. {$IfDef Test2}
  18.     {$I Test2}
  19. {$EndIf}
  20.  
  21. PROCEDURE DrawStar(X, Y, Sx, Sy, C:Integer);
  22. BEGIN
  23.   SetColor(C);
  24.   MoveTo(X - Sx, Y + Sy);
  25.   LineTo(X, Y - Sy);
  26.   LineTo(X + Sx, Y + Sy);
  27.   LineTo(X - Sx, Y);
  28.   LineTo(X + Sx, Y);
  29.   LineTo(X - Sx, Y + Sy)
  30. END;
  31.  
  32. FUNCTION I2S(I: Integer): String;
  33.  
  34. {Function I2S interfaces to STR procedure so
  35.  we can automatically return a value INLINE}
  36.  
  37. VAR
  38.   TempStr : String[3];
  39. BEGIN
  40.   Str(I,TempStr);
  41.   I2S := TempStr;
  42. END;
  43.  
  44. VAR
  45.   I, J, GrDriver, GrError, GrMode,
  46.   GrMinMode, GrMaxMode : Integer;
  47.   BGIPath : PathStr;
  48.  
  49. BEGIN
  50.  
  51.   { Initialize graphics system }
  52.   BGIPath := GetEnv('BGI');
  53.   DetectGraph(GrDriver, GrMode);
  54.   IF (GrDriver < 0) THEN BEGIN
  55.     WriteLn('Error: no graphics hardware detec',
  56.             'ted! ',GrDriver);
  57.     Halt(1)
  58.     END;
  59.  
  60.   { Run through Drivers and legal modes }
  61.  
  62.   FOR I := 1 TO GrDriver DO BEGIN
  63.     J := I;
  64.     GetModeRange(I, GrMinMode, GrMaxMode);
  65.     FOR GrMode := GrMinMode TO GrMaxMode DO BEGIN
  66.       InitGraph(J, GrMode, BGIPath);
  67.       GrError := GraphResult;
  68.       IF GrError < 0 THEN BEGIN
  69.         Textmode(C80);
  70.         WriteLn('Driver=',I:2,' Mode=',GrMode:2,
  71.                 ' Graphics error #',GrError:3);
  72.         WriteLn('Press Enter to continue');
  73.         ReadLn
  74.         END
  75.       ELSE BEGIN
  76.         OutText('Driver=' + I2S(I) + ' Mode=' +
  77.                 I2S(GrMode) + ' MaxX=' +
  78.                 I2S(GetMaxX) + ' MaxY=' +
  79.                 I2S(GetMaxY));
  80.         OutTextXY(0, 10, 'Maximum Driver = ' +
  81.                   I2S(GrDriver));
  82.         OutTextXY(0, 20, 'Min mode=' +
  83.                   I2S(GrMinMode) + ' Max mode=' +
  84.                   I2S(GrMaxMode));
  85.         DrawPict;
  86.         CloseGraph
  87.         END
  88.       END
  89.     END
  90. END.
  91.