home *** CD-ROM | disk | FTP | other *** search
- unit Unvokno;
-
- interface
-
- uses Obraz3D, Unhejb, Unobdel;
- type
- Typ_Ramu = array[1..8]of Char;
-
- const
- Strom_Ram : Typ_Ramu = ('╒','╗','╜','└','═','║','─','│');
- Prazdny_Ram : Typ_Ramu = (' ',' ',' ',' ',' ',' ',' ',' ');
- Obyc_Ram : Typ_Ramu = ('┌','┐','┘','└','─','│','─','│');
- Zv_Horni_Ram : Typ_Ramu = ('╒','╕','┘','└','═','│','─','│');
- Doubble_Ram : Typ_Ramu = ('╔','╗','╝','╚','═','║','═','║');
-
- type Typ_Vokynko = object(Typ_Line)
- Kursor : _Bod2D;
- Psaci_Barva : Byte;
-
- procedure Line_Attrib_Lr(Kterej, Left, Right : Typ_Souradnic; __Barva : Byte);
- procedure Line_Char_Lr(Kterej, Left, Right : Typ_Souradnic; __Znak : Char);
-
- procedure Line_Attrib(Kterej : Typ_Souradnic; __Barva : Byte);
- procedure Zvyraz_Radek(Kterej : Typ_Souradnic; __Barva : Byte);
- procedure Pis(S : string);
- procedure Pisint(I, Jak : Integer);
- procedure GotoXY(X,Y : Typ_Souradnic);
- procedure WriteLn;
- procedure set_Psaci_Barva(_C : Byte); virtual;
- procedure Srovnej_Kursor;
- procedure Clear;
-
- constructor Init;
- end;
-
- implementation
-
- procedure Typ_Vokynko.set_Psaci_Barva(_C : Byte);
- begin
- Psaci_Barva := _C;
- end;
-
- procedure Typ_Vokynko.Line_Attrib_Lr(Kterej, Left, Right : Typ_Souradnic; __Barva : Byte);
- var I : Integer;
- Pom : Ptr_to_3D_Obraz;
- begin
- Pom := Pointer(Dej_Bod(Kterej*(Rozmer.X+1)+1));
- for I := Left to Rozmer.X - Right do
- Pom^[I-1].Obsah.Atrib := __Barva;
- Obnov;
- end;
-
- procedure Typ_Vokynko.Line_Char_Lr;
- var I : Integer;
- Pom : Ptr_to_3D_Obraz;
- Co : Bod_Fyz_Obrazu;
- begin
- Co.Znak := __Znak;
- Co.Atrib := Psaci_Barva;
- Pom := Pointer(Dej_Bod(Kterej*(Rozmer.X+1)+1));
- for I := Left to Rozmer.X - Right do
- Pom^[I-1].Obsah := Co;
- Obnov;
- end;
-
- procedure Typ_Vokynko.Zvyraz_Radek(Kterej : Typ_Souradnic; __Barva : Byte);
- begin
- Line_Attrib_Lr(Kterej, 1, 1, __Barva);
- end;
-
- procedure Typ_Vokynko.Line_Attrib(Kterej : Typ_Souradnic; __Barva : Byte);
- begin
- Line_Attrib_Lr(Kterej, 1, 1, __Barva);
- end;
-
- procedure Typ_Vokynko.Clear;
- var I, J : Typ_Souradnic;
- Co : Bod_Fyz_Obrazu;
- begin
- Co.Znak := ' ';
- Co.Atrib := Psaci_Barva;
- for I := 1 to Rozmer.Y-1 do
- for J := 1 to Rozmer.X - 1 do
- set_Bod(I*(Rozmer.X+1)+J, Co);
-
- Obnov;
- end;
-
- procedure Typ_Vokynko.WriteLn;
- begin
- Inc(Kursor.Y);
- Kursor.X := 1;
- end;
-
- procedure Typ_Vokynko.GotoXY(X,Y : Typ_Souradnic);
- begin
- if X > Rozmer.X then X := Rozmer.X;
- if Y > Rozmer.Y then Y := Rozmer.Y;
- Kursor.X := X;
- Kursor.Y := Y;
- end;
-
- procedure Typ_Vokynko.Srovnej_Kursor;
- begin
- Crt.GotoXY(Poloha.X{&&-Poloha.Z}+Kursor.X+1, Poloha.Y{&&+Poloha.Z}+Kursor.Y+1);
- end;
-
-
- procedure Typ_Vokynko.Pis(S : string);
- var I : Integer;
- Pom : Ptr_to_3D_Obraz;
- begin
- if Kursor.X+Byte(S[0]) > Rozmer.X then Byte(S[0]) := Rozmer.X-Kursor.X;
- Pom := Pointer(Dej_Bod(Kursor.X+Kursor.Y*(Rozmer.X+1)));
- for I := 1 to Byte(S[0]) do
- begin
- Pom^[I-1].Obsah.Znak := S[I];
- Pom^[I-1].Obsah.Atrib := Psaci_Barva;
- end;
- Obnov;
- Inc(Kursor.X, Byte(S[0]))
- end;
-
- procedure Typ_Vokynko.Pisint(I, Jak : Integer);
- var S : string[5];
- begin
- Str(I:Jak, S);
- Pis(S);
- end;
-
- constructor Typ_Vokynko.Init;
- begin
- Typ_Obdelnik.Init;
- Rozmer.X := 0;
- Rozmer.Y := 0;
- Kursor := Rozmer;
- end;
-
- end.
-
-
-
-
-