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

{ SALIM SAMAHA }

Unit Windows;

Interface

Uses
  Crt;

Const
  Max = 3;

Type
  ScreenImage = Array [0..1999] of Word;
  FrameRec    = Record
    Upperleft    : Word;
    LowerRight   : Word;
    ScreenMemory : ScreenImage;
  end;

Var
  SnapShot   : ^ScreenImage;
  FrameStore : Array [1..10] of ^FrameRec;
  WindowNum  : Byte;

Procedure OpenWindow(UpLeftX, UpLeftY, LoRightX, LoRightY : Byte);
Procedure CloseWindow;

Implementation

Procedure OpenWindow(UpLeftX, UpLeftY, LoRightX, LoRightY : Byte);
begin
  SnapShot := Ptr( $B800, $0000);
  Inc(WindowNum);
  New(FrameStore[WindowNum]);
  With Framestore[WindowNum]^ do
  begin
    ScreenMemory := SnapShot^;
    UpperLeft    := WindMin;
    LowerRight   := WindMax;
  end;
  Window(UpLeftX, UpLeftY, LoRightX, LoRightY);
end;

Procedure CloseWindow;
begin
  With Framestore[WindowNum]^ do
  begin
    Snapshot^ := ScreenMemory;
    Window ((Lo(UpperLeft) + 1), (Hi(UpperLeft) + 1),
            (Lo(LowerRight) + 1), (Hi(LowerRight) + 1));
  end;
  Dispose(Framestore[WindowNum]);
  Dec(WindowNum);
end;


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