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

    {

    This program is an example that will display static text
    in a static menubar above the active menubar.

    }
    program ExtraMenuBar;

    uses Objects, Drivers, Views, Menus, App;

    const
      cmFileOpen = 100;
      cmNewWin   = 101;

    type
      PExtraMenuBar = ^TExtraMenuBar;
      TExtraMenuBar = object(TMenuBar)
       procedure Draw;virtual;
      end;

      TMyApp = object(TApplication)
        ExtraMenuBar : PExtraMenuBar;
        procedure InitMenuBar; virtual;
        procedure InitStatusLine; virtual;
      end;

    procedure TExtraMenuBar.Draw;
    const
     ProgName : String = '                                    Program Name'+
                         '                                 ';
    begin
    TMenuBar.Draw;
    WriteStr(0,0,ProgName,$06);
    end;

    { TMyApp }
    procedure TMyApp.InitMenuBar;
    var R: TRect;
    begin
      GetExtent(R);
      ExtraMenuBar := New(PExtraMenuBar,Init(R,nil));
      Insert(ExtraMenuBar);
      R.B.Y := R.A.Y + 2;
      R.A.Y := 1;
      MenuBar := New(PMenuBar, Init(R, NewMenu(
        NewSubMenu('~F~ile', hcNoContext, NewMenu(
          NewItem('~O~pen', 'F3', kbF3, cmFileOpen, hcNoContext,
          NewItem('~N~ew', 'F4', kbF4, cmNewWin, hcNoContext,
          NewLine(
          NewItem('E~x~it', 'Alt-X', kbAltX, cmQuit, hcNoContext,
          nil))))),
          nil))));
    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('', kbF10, cmMenu,
          NewStatusKey('~Alt-X~ Exit', kbAltX, cmQuit,
          NewStatusKey('~F4~ New', kbF4, cmNewWin,
          NewStatusKey('~Alt-F3~ Close', kbAltF3, cmClose,
          nil)))),
        nil)
      ));
    end;

    var
      MyApp: TMyApp;

    begin
      MyApp.Init;
      MyApp.Run;
      MyApp.Done;
    end.

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