[Back to TEXTWNDW SWAG index] [Back to Main SWAG index] [Original]

    {
    > I Write the following Procedure to shadow Text behind a box.  It works
    > fine (so Far), but am not sure if there is a quicker, easier way.

    You are searching through the video-RAM For the Char and Attr, you want to
    change. Perhaps, it is easier and faster to use the interrupt, that returns
    you the Char under the Cursor , than you can change the attribute.
    }
    Uses
      Dos, Crt;

    Procedure Shadow(x1, y1, x2, y2 : Byte);
    Var
      s, i, j : Byte;

      Procedure Z(x, y : Byte);
      Var
        r : Registers;
      begin
        r.ah := $02;
           { Function 2hex (Put Position of Cursor) }
        r.bh := 0;
        r.dh := y - 1;        { Y-Position }
        r.dl := x - 1;        { X-Position }
        intr($10,r);
        r.ah := $08;
           { Fkt. 8hex ( Read Char under cursor ) }
        r.bh := 0;
        intr($10, r);
        Write(chr(r.al));
      end;

    begin
      s := TextAttr; { save Attr }
      TextAttr := 8;
      For i := y1 + 1 to y2 + 1 do
        For j := x1 + 1 to x2 + 1 do
          z(i, j);
      TextAttr := s; { Attr back }
    end;

    begin
      Shadow(10,10,20,20);
      ReadKey;
    end.

[Back to TEXTWNDW SWAG index] [Back to Main SWAG index] [Original]