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

DS>  Like say there is a Text Window that pops up when someone makes a
DS>choice. Then they select something else and a Text Window is made that
DS>overlaps the previous one.  Then I'd like to have it so if the user
DS>were to press, say, escape, the current Text Window would be "removed"
DS>and the old Window would still be there as is was....
DS>How can this be done??  Please keep in mind that I'm still sort of

Here's two Procedures a friend of mine wrote (David Thomas: give credit
whree credit is due).  It works great With regular Text screens.


Put This in you Type section:

  WindowStatus = (OnScreen, OffScreen);
  WindowType = Record
                 Point    : Pointer;
                 Status   : WindowStatus;
                 Col,
                 Row,
                 SaveAttr : Byte;
               end;

Procedure GetWindow (Var Name : WindowType);
Var
  Size,
  endOffset,
  StartOffset  : Integer;
begin   { GetWindow }

  With Name Do
    begin
      Col := WhereX;
      Row := WhereY;
      SaveAttr := TextAttr;

      StartOffset := 0;
      endOffset   := 25 * 160;
      Size := endOffset - StartOffset;
      GetMem (Point, Size);

      Move (Mem[$B800:StartOffset], Point^, Size);
      Status := OnScreen;
    end; { With }

end;    { GetWindow }
{--------------------------------------------------------------------}
Procedure PutWindow (Var Name : WindowType);
Var
  Size,
  endOffset,
  StartOffset  : Integer;
begin   { PutWindow }

  With Name Do
    begin
      StartOffset := 0;
      endOffset   := 25 * 160;
      Size := endOffset - StartOffset;

      Move (Point^, Mem[$B800:StartOffset], Size);

      FreeMem (Point, Size);
      Status := OffScreen;

      TextAttr := SaveAttr;
      GotoXY (Col, Row);
    end; { With }

end;    { PutWindow }


Very easy to use.  Just declare a Varibale of WindowType, call the
GETWindow routine, then display whatever.  When you're done, call the
PUTWindow routine and it Zap, it's back to how it was.  Very face, very
nice.

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