home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Best of the Best
/
_.img
/
02018
/
twindow.inc
< prev
Wrap
Text File
|
1987-07-07
|
2KB
|
63 lines
(*****************************************************************************)
(* Window - Tool V. 1.0 für Windows im Textmodus *)
(*****************************************************************************)
Const Fensteranzahl=3;
Type Bildschirmzeile =String[160];
Seite =array[1..25] of Bildschirmzeile;
Zeiger =^Bildschirmzeile;
String80 =String[80];
Var Screen : Array[1..Fensteranzahl] of Seite;
Screenadr: Zeiger absolute $b800:$0000; {bei Hercules $b000:$0000}
(*---------------------------------------------------------------------------*)
procedure Rahmen(xo,yo,xu,yu:Integer);
Var I,Ly,Lx :Integer;
Zeile :String[164];
begin
Ly:=yu-yo-1;
Lx:=xu-xo-1;
Fillchar (Zeile,Lx+1,205);
Fillchar (Zeile,1,Lx);
Gotoxy(xo,yo);
write(#201);
write(zeile);
write(#187);
gotoxy(xo,yu);
write(#200);
write(zeile);
write(#188);
for i:=1 to Ly do
begin
gotoxy(xo,I+yo);write(#186);
gotoxy(xu,i+yo);write(#186);
end;
end;
(*---------------------------------------------------------------------------*)
Procedure Open_Window (Nr,xo,yo,xu,yu,vf,hf:Integer;
Kopfz:String80);
Var i,Pos:Integer;
begin
Move (Screenadr,Screen[Nr,1],4000); (*aktuellen Schirm speichern*)
Textcolor(vf);Textbackground(hf);
Rahmen(xo,yo,xu,yu); (*Rahmen in das Fenster zeichnen*)
if Kopfz <>'' then begin
Kopfz:='['+kopfz+']';
Pos:=trunc(0.5*(xo+xu-length(Kopfz)));
gotoxy(Pos,yo);
write(Kopfz);
end;
Window (xo+1,yo+1,xu-1,yu-1); (*Arbeitsbereich setzen*)
Clrscr;
end;
(*---------------------------------------------------------------------------*)
Procedure Close_Window (Nr:Integer);
begin
Move(Screen[Nr,1],Screenadr,4000); (* Alten Bildschirminhalt zurücksetzen*)
Window (1,1,80,25);
end;