home *** CD-ROM | disk | FTP | other *** search
/ Prima Shareware 3 / DuCom_Prima-Shareware-3_cd1.bin / PROGRAMO / PASCAL / HEJB / UNITS / UNVOKNO.PAS < prev   
Encoding:
Pascal/Delphi Source File  |  1993-11-30  |  3.6 KB  |  145 lines

  1. unit Unvokno;
  2.  
  3. interface
  4.  
  5. uses Obraz3D, Unhejb, Unobdel;
  6. type
  7.   Typ_Ramu = array[1..8]of Char;
  8.  
  9. const
  10.   Strom_Ram      : Typ_Ramu = ('╒','╗','╜','└','═','║','─','│');
  11.   Prazdny_Ram    : Typ_Ramu = (' ',' ',' ',' ',' ',' ',' ',' ');
  12.   Obyc_Ram       : Typ_Ramu = ('┌','┐','┘','└','─','│','─','│');
  13.   Zv_Horni_Ram   : Typ_Ramu = ('╒','╕','┘','└','═','│','─','│');
  14.   Doubble_Ram    : Typ_Ramu = ('╔','╗','╝','╚','═','║','═','║');
  15.  
  16. type Typ_Vokynko = object(Typ_Line)
  17.                     Kursor         : _Bod2D;
  18.                     Psaci_Barva    : Byte;
  19.  
  20.                     procedure Line_Attrib_Lr(Kterej, Left, Right : Typ_Souradnic; __Barva : Byte);
  21.                     procedure Line_Char_Lr(Kterej, Left, Right : Typ_Souradnic; __Znak : Char);
  22.  
  23.                     procedure Line_Attrib(Kterej : Typ_Souradnic; __Barva : Byte);
  24.                     procedure Zvyraz_Radek(Kterej : Typ_Souradnic; __Barva : Byte);
  25.                     procedure Pis(S : string);
  26.                     procedure Pisint(I, Jak : Integer);
  27.                     procedure GotoXY(X,Y : Typ_Souradnic);
  28.                     procedure WriteLn;
  29.                     procedure set_Psaci_Barva(_C : Byte); virtual;
  30.                     procedure Srovnej_Kursor;
  31.                     procedure Clear;
  32.  
  33.                     constructor Init;
  34.                   end;
  35.  
  36. implementation
  37.  
  38. procedure Typ_Vokynko.set_Psaci_Barva(_C : Byte);
  39. begin
  40.   Psaci_Barva := _C;
  41. end;
  42.  
  43. procedure Typ_Vokynko.Line_Attrib_Lr(Kterej, Left, Right : Typ_Souradnic; __Barva : Byte);
  44. var I : Integer;
  45.     Pom : Ptr_to_3D_Obraz;
  46. begin
  47.   Pom := Pointer(Dej_Bod(Kterej*(Rozmer.X+1)+1));
  48.   for I := Left to Rozmer.X - Right do
  49.     Pom^[I-1].Obsah.Atrib := __Barva;
  50.   Obnov;
  51. end;
  52.  
  53. procedure Typ_Vokynko.Line_Char_Lr;
  54. var I : Integer;
  55.     Pom : Ptr_to_3D_Obraz;
  56.     Co   : Bod_Fyz_Obrazu;
  57. begin
  58.   Co.Znak := __Znak;
  59.   Co.Atrib := Psaci_Barva;
  60.   Pom := Pointer(Dej_Bod(Kterej*(Rozmer.X+1)+1));
  61.   for I := Left to Rozmer.X - Right do
  62.       Pom^[I-1].Obsah := Co;
  63.   Obnov;
  64. end;
  65.  
  66. procedure Typ_Vokynko.Zvyraz_Radek(Kterej : Typ_Souradnic; __Barva : Byte);
  67. begin
  68.   Line_Attrib_Lr(Kterej, 1, 1, __Barva);
  69. end;
  70.  
  71. procedure Typ_Vokynko.Line_Attrib(Kterej : Typ_Souradnic; __Barva : Byte);
  72. begin
  73.   Line_Attrib_Lr(Kterej, 1, 1, __Barva);
  74. end;
  75.  
  76. procedure Typ_Vokynko.Clear;
  77. var I, J : Typ_Souradnic;
  78.     Co   : Bod_Fyz_Obrazu;
  79. begin
  80.   Co.Znak := ' ';
  81.   Co.Atrib := Psaci_Barva;
  82.   for I := 1 to Rozmer.Y-1 do
  83.     for J := 1 to Rozmer.X - 1 do
  84.       set_Bod(I*(Rozmer.X+1)+J, Co);
  85.  
  86.   Obnov;
  87. end;
  88.  
  89. procedure Typ_Vokynko.WriteLn;
  90. begin
  91.   Inc(Kursor.Y);
  92.   Kursor.X := 1;
  93. end;
  94.  
  95. procedure Typ_Vokynko.GotoXY(X,Y : Typ_Souradnic);
  96. begin
  97.   if X > Rozmer.X then X := Rozmer.X;
  98.   if Y > Rozmer.Y then Y := Rozmer.Y;
  99.   Kursor.X := X;
  100.   Kursor.Y := Y;
  101. end;
  102.  
  103. procedure Typ_Vokynko.Srovnej_Kursor;
  104. begin
  105.   Crt.GotoXY(Poloha.X{&&-Poloha.Z}+Kursor.X+1, Poloha.Y{&&+Poloha.Z}+Kursor.Y+1);
  106. end;
  107.  
  108.  
  109. procedure Typ_Vokynko.Pis(S : string);
  110. var I : Integer;
  111.     Pom : Ptr_to_3D_Obraz;
  112. begin
  113.   if Kursor.X+Byte(S[0]) > Rozmer.X then Byte(S[0]) := Rozmer.X-Kursor.X;
  114.   Pom := Pointer(Dej_Bod(Kursor.X+Kursor.Y*(Rozmer.X+1)));
  115.   for I := 1 to Byte(S[0]) do
  116.     begin
  117.       Pom^[I-1].Obsah.Znak  := S[I];
  118.       Pom^[I-1].Obsah.Atrib := Psaci_Barva;
  119.     end;
  120.   Obnov;
  121.   Inc(Kursor.X, Byte(S[0]))
  122. end;
  123.  
  124. procedure Typ_Vokynko.Pisint(I, Jak : Integer);
  125. var S : string[5];
  126. begin
  127.   Str(I:Jak, S);
  128.   Pis(S);
  129. end;
  130.  
  131. constructor Typ_Vokynko.Init;
  132. begin
  133.   Typ_Obdelnik.Init;
  134.   Rozmer.X := 0;
  135.   Rozmer.Y := 0;
  136.   Kursor := Rozmer;
  137. end;
  138.  
  139. end.
  140.  
  141.  
  142.  
  143.  
  144.  
  145.