1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| procedure FrameTextWindow(color,trait:byte);
const
FrameChar : array[1..2,1..6] of char =
((#218,#191,#192,#217,#196,#179),
(#201,#187,#200,#188,#205,#186));
var
i,pos,offset : integer;
base : longint;
note : byte;
begin
GetVideo;
CsrOff;
SelTextWindow(ActiveWindow);
TextColor(colorTable[color]);
gotoXY(1,1);write(FrameChar[trait,1]);
for i:=2 to XTextLimit-1 do write(FrameChar[trait,5]);
write(FrameChar[trait,2]);
for i:=2 to YTextLimit-1 do
begin
gotoXY(1,i);write(FrameChar[trait,6]);
gotoXY(XTextLimit,i);
write(FrameChar[trait,6]);
end;
gotoXY(1,YTextLimit);
write(FrameChar[trait,3]);
for i:=2 to XTextLimit-1 do write(FrameChar[trait,5]);
pos:= WinRefTable[ActiveWindow,3] +
(WinRefTable[ActiveWindow,4] - 1) * colnum;
if mode_video=7 then base:=$B000
else base:=$B800;
<!!!!!!!!!!
Mem[base:(2 * pos) - 2] := ord(FrameChar[trait,4]);
Mem[base:((2 * pos) - 2) + 1] := Mem[base:((2 * pos) - 2) - 1];
!!!!!!!!>
CsrOn;
end; |
Partager