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

    {$X+}
    Program ExampleProgram;
    {$M $8000,0,655360}
    Uses Drivers, Objects, Views, App, Menus, Dialogs, Dos;
      Const
        cmLeft =  101;

      Type
        PDirCollection = ^TDirCollection;
        TDirCollection = Object(TSortedCollection)
          Constructor Init;
          Function Compare(Key1, Key2: Pointer): Integer; Virtual;
          Procedure FreeItem(Item: Pointer); Virtual;
        End;

        PMStaticText = ^TMStaticText;
        TMStaticText = Object(TStaticText)
          Function GetPalette: PPalette; Virtual;
        End;

        PTestDialog = ^TTestDialog;
        TTestDialog = Object(TDialog)
          Function Valid(Command: Word): Boolean; Virtual;
        End;

        TTestMain = Object(TApplication)
          Constructor Init;
          Procedure InitStatusLine; Virtual;
          Procedure Run; Virtual;
        End;
      {-------------- TDirCollection -------}
        Constructor TDirCollection.Init;
          Var
            I: Integer;
            Info: SearchRec;
            S: ^String;
          Begin
            TCollection.Init(100, 10);
            FindFirst('*.*', AnyFile, Info);
            While DosError=0 do
              Begin
                New(S);
                S^:=Info.Name;
                Insert(S);
                FindNext(Info);
              End;
          End;

        Function TDirCollection.Compare(Key1, Key2: Pointer): Integer;
          Begin
            If String(Key1^)<String(Key2^) then Compare:=-1
            Else If String(Key1^)>String(Key2^) then Compare:=1
            Else Compare:=0;
          End;

        Procedure TDirCollection.FreeItem(Item:Pointer);
          Type
            PString = ^String;
          Begin
            Dispose(PString(Item));
          End;

      {-------------- TStaticText ----------}
        Function TMStaticText.GetPalette: PPalette;
          Begin
            GetPalette := TView.GetPalette{@cMenuBar};
          End;

      {-------- TTestDialog --------}
      Function TTestDialog.Valid(Command: Word): Boolean;
        Begin
          Valid:=False;
          Case Command of
            cmLeft:;
          Else
            Valid:=true;
          End
        End;

      {-------- TTestMain ----------}
      Constructor TTestMain.Init;
        Var
          StaticText: PMStaticText;
          R: TRect;
        Begin
          TApplication.Init;
          GetExtent(R);
          R.B.Y:=R.A.Y+1;
          StaticText:= New(PMStaticText, Init(R, '                         Welcome to Turbo Vision'));
          Insert(StaticText);
          GetExtent(R);
          R.A.Y:=R.B.Y-1;
          StaticText:= New(PMStaticText,Init(R,' '));
          Insert(StaticText);
          R.Assign(70,24,79,25);
        End;

      Procedure TTestMain.InitStatusLine;
        Begin
        End;

      Procedure TTestMain.Run;
        Var
          Dialog: PTestDialog;
          ListBox: PListBox;
          DirCollection: PDirCollection;
          ScrollBar: PScrollBar;
          R:TRect;
        Begin
          R.Assign(5,3,30,18);
          Dialog := New(PTestDialog, Init(R, 'My Dialog'));

          R.Assign(20,2,21,13);
          ScrollBar:=New(PScrollBar,Init(R));
          Dialog^.Insert(ScrollBar);
          R.Assign(2,2,20,13);
          ListBox:= New(PListBox, Init(R, 1, ScrollBar));
          Dialog^.Insert(ListBox);
          DirCollection:=New(PDirCollection, Init);
          ListBox^.NewList(DirCollection);
          DeskTop^.ExecView(Dialog);
        End;

      Var
        TestMain: TTestMain;

      Begin
        TestMain.Init;
        TestMain.Run;
        TestMain.Done;
      End.

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