Section courante

A propos

Section administrative du site

  1. Unit Graph;
  2.  
  3. interface
  4.  
  5. const
  6.   { Codes d'erreur du retour de GraphResult: }
  7.   grOk               =   0;
  8.   grNoInitGraph      =  -1;
  9.   grNotDetected      =  -2;
  10.   grFileNotFound     =  -3;
  11.   grInvalidDriver    =  -4;
  12.   grNoLoadMem        =  -5;
  13.   grNoScanMem        =  -6;
  14.   grNoFloodMem       =  -7;
  15.   grFontNotFound     =  -8;
  16.   grNoFontMem        =  -9;
  17.   grInvalidMode      = -10;
  18.   grError            = -11;   { Erreur générique }
  19.   grIOerror          = -12;
  20.   grInvalidFont      = -13;
  21.   grInvalidFontNum   = -14;
  22.   grInvalidVersion   = -18;
  23.  
  24.   { Divers définitions graphiques }
  25.   CurrentDriver = -128; { passé à GetModeRange }
  26.   Detect        = 0;    { requêtes d'auto-détection }
  27.   CGA           = 1;
  28.   MCGA          = 2;
  29.   EGA           = 3;
  30.   EGA64         = 4;
  31.   EGAMono       = 5;
  32.   IBM8514       = 6;
  33.   HercMono      = 7;
  34.   ATT400        = 8;
  35.   VGA           = 9;
  36.   PC3270        = 10;
  37.  
  38.   { Modes graphiques pour chaque pilote }
  39.   CGAC0      = 0;  { 320x200 palette 0: LightGreen, LightRed, Yellow; 1 page }
  40.   CGAC1      = 1;  { 320x200 palette 1: LightCyan, LightMagenta, White; 1 page }
  41.   CGAC2      = 2;  { 320x200 palette 2: Green, Red, Brown; 1 page }
  42.   CGAC3      = 3;  { 320x200 palette 3: Cyan, Magenta, LightGray; 1 page }
  43.   CGAHi      = 4;  { 640x200 1 page }
  44.   MCGAC0     = 0;  { 320x200 palette 0: LightGreen, LightRed, Yellow; 1 page }
  45.   MCGAC1     = 1;  { 320x200 palette 1: LightCyan, LightMagenta, White; 1 page }
  46.   MCGAC2     = 2;  { 320x200 palette 2: Green, Red, Brown; 1 page }
  47.   MCGAC3     = 3;  { 320x200 palette 3: Cyan, Magenta, LightGray; 1 page }
  48.   MCGAMed    = 4;  { 640x200 1 page }
  49.   MCGAHi     = 5;  { 640x480 1 page }
  50.   EGALo      = 0;  { 640x200 16 couleurs 4 page }
  51.   EGAHi      = 1;  { 640x350 16 couleurs 2 page }
  52.   EGA64Lo    = 0;  { 640x200 16 couleurs 1 page }
  53.   EGA64Hi    = 1;  { 640x350 4 couleurs 1 page }
  54.   EGAMonoHi  = 3;  { 640x350 64 Ko sur la carte, 1 page; 256 Ko sur la carte, 2 page }
  55.   HercMonoHi = 0;  { 720x348 2 page }
  56.   ATT400C0   = 0;  { 320x200 palette 0: LightGreen, LightRed, Yellow; 1 page }
  57.   ATT400C1   = 1;  { 320x200 palette 1: LightCyan, LightMagenta, White; 1 page }
  58.   ATT400C2   = 2;  { 320x200 palette 2: Green, Red, Brown; 1 page }
  59.   ATT400C3   = 3;  { 320x200 palette 3: Cyan, Magenta, LightGray; 1 page }
  60.   ATT400Med  = 4;  { 640x200 1 page }
  61.   ATT400Hi   = 5;  { 640x400 1 page }
  62.   VGALo      = 0;  { 640x200 16 couleurs 4 page }
  63.   VGAMed     = 1;  { 640x350 16 couleurs 2 page }
  64.   VGAHi      = 2;  { 640x480 16 couleurs 1 page }
  65.   PC3270Hi   = 0;  { 720x350 1 page }
  66.   IBM8514LO  = 0;  { 640x480 256 couleurs }
  67.   IBM8514HI  = 1;  { 1024x768 256 couleurs }
  68.  
  69.   { Couleurs pour SetPalette et SetAllPalette: }
  70.   Black        = 0;
  71.   Blue         = 1;
  72.   Green        = 2;
  73.   Cyan         = 3;
  74.   Red          = 4;
  75.   Magenta      = 5;
  76.   Brown        = 6;
  77.   LightGray    = 7;
  78.   DarkGray     = 8;
  79.   LightBlue    = 9;
  80.   LightGreen   = 10;
  81.   LightCyan    = 11;
  82.   LightRed     = 12;
  83.   LightMagenta = 13;
  84.   Yellow       = 14;
  85.   White        = 15;
  86.  
  87.   { couleurs pour 8514 pour définir les couleurs EGA standard sans connaître leurs valeurs }
  88.   EGABlack             = 0;       { couleurs sombres }
  89.   EGABlue              = 1;
  90.   EGAGreen             = 2;
  91.   EGACyan              = 3;
  92.   EGARed               = 4;
  93.   EGAMagenta           = 5;
  94.   EGABrown             = 20;
  95.   EGALightgray         = 7;
  96.   EGADarkgray          = 56;      { couleurs claires }
  97.   EGALightblue         = 57;
  98.   EGALightgreen        = 58;
  99.   EGALightcyan         = 59;
  100.   EGALightred          = 60;
  101.   EGALightmagenta      = 61;
  102.   EGAYellow            = 62;
  103.   EGAWhite             = 63;
  104.  
  105.   { Styles et largeurs de ligne pour Get / SetLineStyle: }
  106.   SolidLn    = 0;
  107.   DottedLn   = 1;
  108.   CenterLn   = 2;
  109.   DashedLn   = 3;
  110.   UserBitLn  = 4;       { Style de ligne défini par l'utilisateur }
  111.  
  112.   NormWidth  = 1;
  113.   ThickWidth = 3;
  114.  
  115.   { Constantes GetTextStyle et SetTextStyle: }
  116.   DefaultFont   = 0;    { Police de caractères cartographiée 8x8 bits }
  117.   TriplexFont   = 1;    { Polices de caractères "Stroked" }
  118.   SmallFont     = 2;
  119.   SansSerifFont = 3;
  120.   GothicFont    = 4;
  121.  
  122.   HorizDir   = 0;       { de gauche à droite }
  123.   VertDir    = 1;       { de bas en haut }
  124.  
  125.   UserCharSize = 0;     { taille de caractère définie par l'utilisateur }
  126.  
  127.   { Constantes de captures: }
  128.   ClipOn  = true;
  129.   ClipOff = false;
  130.  
  131.   { Constantes de Bar3D: }
  132.   TopOn  = true;
  133.   TopOff = false;
  134.  
  135.   { Motifs de remplissage pour GetFillStyle / SetFillStyle: }
  136.   EmptyFill       = 0;  { remplir la zone en couleur de fond }
  137.   SolidFill       = 1;  { remplir la zone en couleur unie }
  138.   LineFill        = 2;  { remplir ---}
  139.   LtSlashFill     = 3;  { remplir ///}
  140.   SlashFill       = 4;  { remplir /// avec des traits épais }
  141.   BkSlashFill     = 5;  { remplir \\\ avec des traits épais }
  142.   LtBkSlashFill   = 6;  { remplir \\\ }
  143.   HatchFill       = 7;  { remplissage de la trappe légère }
  144.   XHatchFill      = 8;  { remplissage de hachures croisées }
  145.   InterleaveFill  = 9;  { remplissage de lignes d'entrelacement }
  146.   WideDotFill     = 10; { Remplissage de points largement espacés }
  147.   CloseDotFill    = 11; { Remplissage de points étroitement espacés }
  148.   UserFill        = 12; { Remplissage défini par l'utilisateur }
  149.  
  150.   { Opérateurs BitBlt pour PutImage: }
  151.   NormalPut     = 0;    { MOV }       { laissé pour la compatibilité du Turbo Pascal 1.0 }
  152.   CopyPut       = 0;    { MOV }
  153.   XORPut        = 1;    { XOR }
  154.   OrPut         = 2;    { OR }
  155.   AndPut        = 3;    { AND }
  156.   NotPut        = 4;    { NOT }
  157.  
  158.   { Justification horizontale et verticale de SetTextJustify : }
  159.   LeftText   = 0;
  160.   CenterText = 1;
  161.   RightText  = 2;
  162.  
  163.   BottomText = 0;
  164. { CenterText = 1; déjà défini ci-dessus }
  165.   TopText    = 2;
  166.  
  167.  
  168. const
  169.   MaxColors = 15;
  170. type
  171.   PaletteType = record
  172.       Size   : byte;
  173.       Colors : array[0..MaxColors] of shortint;
  174.     end;
  175.  
  176.   LineSettingsType = record
  177.       LineStyle : word;
  178.       Pattern   : word;
  179.       Thickness : word;
  180.     end;
  181.  
  182.   TextSettingsType = record
  183.       Font      : word;
  184.       Direction : word;
  185.       CharSize  : word;
  186.       Horiz     : word;
  187.       Vert      : word;
  188.     end;
  189.  
  190.   FillSettingsType = record               { Style de remplissage prédéfini }
  191.       Pattern : word;
  192.       Color   : word;
  193.     end;
  194.  
  195.   FillPatternType = array[1..8] of byte;  { Style de remplissage défini par l'utilisateur }
  196.  
  197.   PointType = record
  198.       X, Y : integer;
  199.     end;
  200.  
  201.   ViewPortType = record
  202.       x1, y1, x2, y2 : integer;
  203.       Clip           : boolean;
  204.     end;
  205.  
  206.   ArcCoordsType = record
  207.       X, Y           : integer;
  208.       Xstart, Ystart : integer;
  209.       Xend, Yend     : integer;
  210.     end;
  211.  
  212.  
  213. var
  214.   GraphGetMemPtr  : Pointer;   { permet à l'utilisateur de voler l'allocation de tas }
  215.   GraphFreeMemPtr : Pointer;   { permet à l'utilisateur de voler la désallocation de tas }
  216.  
  217. Function GraphErrorMsg(ErrorCode : integer) : String;
  218. Function GraphResult : integer;
  219. Procedure DetectGraph(var GraphDriver, GraphMode : integer);
  220. Function GetDriverName : string;
  221. Procedure InitGraph(var GraphDriver : integer;var GraphMode   : integer;PathToDriver : String);
  222. Function RegisterBGIfont(Font : pointer) : integer;
  223. Function RegisterBGIdriver(Driver : pointer) : integer;
  224. Function InstallUserDriver(DriverFileName : string;AutoDetectPtr : pointer) : integer;
  225. Function InstallUserFont(FontFileName : string) : integer;
  226. Procedure SetGraphBufSize(BufSize : word);
  227. Function GetMaxMode : integer;
  228. Procedure GetModeRange(GraphDriver : integer; var LoMode, HiMode : integer);
  229. Function GetModeName(GraphMode : integer) : string;
  230. Procedure SetGraphMode(Mode : integer);
  231. Function GetGraphMode : integer;
  232. Procedure GraphDefaults;
  233. Procedure RestoreCrtMode;
  234. Procedure CloseGraph;
  235. Function  GetX : integer;
  236. Function  GetY : integer;
  237. Function  GetMaxX : integer;
  238. Function  GetMaxY : integer;
  239. Procedure ClearDevice;
  240. Procedure SetViewPort(x1, y1, x2, y2 : integer; Clip : boolean);
  241. Procedure GetViewSettings(var ViewPort : ViewPortType);
  242. Procedure ClearViewPort;
  243. Procedure SetVisualPage(Page : word);
  244. Procedure SetActivePage(Page : word);
  245. Procedure PutPixel(X, Y : integer; Pixel : word);
  246. Function  GetPixel(X, Y : integer) : word;
  247. Procedure SetWriteMode(WriteMode : integer);
  248. Procedure LineTo(X, Y : integer);
  249. Procedure LineRel(Dx, Dy : integer);
  250. Procedure MoveTo(X, Y : integer);
  251. Procedure MoveRel(Dx, Dy : integer);
  252. Procedure Line(x1, y1, x2, y2 : integer);
  253. Procedure GetLineSettings(var LineInfo : LineSettingsType);
  254. Procedure SetLineStyle(LineStyle : word;Pattern   : word;Thickness : word);
  255. Procedure Rectangle(x1, y1, x2, y2 : integer);
  256. Procedure Bar(x1, y1, x2, y2 : integer);
  257. Procedure Bar3D(x1, y1, x2, y2 : integer; Depth : word; Top : boolean);
  258. Procedure DrawPoly(NumPoints : word; var PolyPoints);
  259. Procedure FillPoly(NumPoints : word; var PolyPoints);
  260. Procedure GetFillSettings(var FillInfo : FillSettingsType);
  261. Procedure GetFillPattern(var FillPattern : FillPatternType);
  262. Procedure SetFillStyle(Pattern : word; Color : word);
  263. Procedure SetFillPattern(Pattern : FillPatternType; Color : word);
  264. Procedure FloodFill(X, Y : integer; Border : word);
  265. Procedure Arc(X, Y : integer; StAngle, EndAngle, Radius : word);
  266. Procedure GetArcCoords(var ArcCoords : ArcCoordsType);
  267. Procedure Circle(X, Y : integer; Radius : word);
  268. Procedure Ellipse(X, Y : integer;StAngle, EndAngle : word;XRadius, YRadius  : word);
  269. Procedure FillEllipse(X, Y : integer;XRadius, YRadius  : word);
  270. Procedure GetAspectRatio(var Xasp, Yasp : word);
  271. Procedure SetAspectRatio(Xasp, Yasp : word);
  272. Procedure PieSlice(X, Y : integer; StAngle, EndAngle, Radius : word);
  273. Procedure Sector(X, Y : Integer;StAngle, EndAngle,XRadius, YRadius:word);
  274. Procedure SetBkColor(ColorNum : word);
  275. Procedure SetColor(Color : word);
  276. Function GetBkColor : word;
  277. Function GetColor : word;
  278. Procedure SetAllPalette(var Palette);
  279. Procedure SetPalette(ColorNum : word; Color : shortint);
  280. Procedure GetPalette(var Palette : PaletteType);
  281. Function GetPaletteSize : integer;
  282. Procedure GetDefaultPalette(var Palette : PaletteType);
  283. Function GetMaxColor : word;
  284. Procedure SetRGBPalette(ColorNum, RedValue, GreenValue, BlueValue : integer);
  285. Function  ImageSize(x1, y1, x2, y2 : integer) : word;
  286. Procedure GetImage(x1, y1, x2, y2 : integer; var BitMap);
  287. Procedure PutImage(X, Y : integer; var BitMap; BitBlt : word);
  288. Procedure GetTextSettings(var TextInfo : TextSettingsType);
  289. Procedure OutText(TextString : string);
  290. Procedure OutTextXY(X, Y : integer; TextString : string);
  291. Procedure SetTextJustify(Horiz, Vert : word);
  292. Procedure SetTextStyle(Font, Direction : word; CharSize : word);
  293. Procedure SetUserCharSize(MultX, DivX, MultY, DivY : word);
  294. Function  TextHeight(TextString : string) : word;
  295. Function  TextWidth(TextString : string) : word;


Dernière mise à jour : Dimanche, le 20 avril 2014