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

    {
    This program will place a new forground and background color
    on the desktop.  It will also set the character that is displayed
    for the pattern.  Please note that the $05 is where the 0 is for
    black foreground and the 5 is for purple background.

    }

    program ColorManipulation;

    uses
        Dos, Objects, Drivers, Memory, Views,
        Menus, Dialogs, App;
    type
      PMyBack = ^TMyBack;
      TMyBack = object(TBackground)
        constructor init(var Bounds: Trect);
      end;

      PMyApp = ^TMyApp;
      TMyApp = object(TApplication)
        MyBack: PMyBack;
        constructor Init;
        procedure Initstatusline; virtual;
        procedure Initmenubar; virtual;
        function GetPalette:PPalette; virtual;
      end;

    function TMyApp.GetPalette: PPalette;
    const
      MyBackColor : TPalette = CColor;  { sets palette to CColor items, }
    begin
      MyBackColor[1]:=#$05;   {TBackGround Color Constants first number is
                               background and second is foreground}
      GetPalette := @MyBackColor;
    end;

    constructor TMyBack.Init(var Bounds: TRect);
    begin
      TBackground.Init(Bounds, '²');{ places ASCII 178 char as pattern }
    end;                            { for text on desktop.             }

    constructor TMyApp.Init;
    var
      R:Trect;
    begin
      TApplication.Init;
      GetExtent(R);
      MyBack:= New(PMyBack, init(R));
      Desktop^.Background:= MyBack;
      Desktop^.Insert(Desktop^.Background);
    end;

    procedure TMyApp.InitStatusLine;
    var
      R: TRect;
    begin
      GetExtent(R);
      R.A.Y := R.B.Y - 1;
      StatusLine := New(PStatusLine, Init(R,
        NewStatusDef(0, $FFFF,
          NewStatusKey('~Alt-X~ Exit', kbAltX, cmQuit,
          nil),
        nil)
      ));
    end;

    procedure TMyApp.InitMenuBar;
    begin
    TApplication.InitMenubar;
    end;

    var
      TheApp: TMyApp;
    begin
      TheApp.Init;
      TheApp.Run;
      TheApp.Done;
    end.

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