home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pcmagazi / 1992 / 18 / filedlg.pas < prev    next >
Pascal/Delphi Source File  |  1992-01-05  |  3KB  |  96 lines

  1. PROGRAM FileDlg;
  2. USES WinTypes, WinProcs, WObjects, Strings, StdDlgs;
  3. {$R FileDlg}
  4. CONST
  5.   AppName : PChar = 'FileDlg';
  6.   NewOpen : PChar = 'Wow, Like, Open A File, Man!';
  7.   NewSave : PChar = 'Save My File, Please!';
  8.   Cm_1 = 101;
  9.   Cm_2 = 102;
  10.   Cm_3 = 103;
  11.   Cm_4 = 104;
  12. TYPE
  13.   TMyApplication = object(TApplication)
  14.     PROCEDURE InitMainWindow; virtual;
  15.   END;
  16.  
  17.   PTestWindow = ^TTestWindow;
  18.   TTestWindow = OBJECT(TWindow)
  19.     B : ARRAY[0..144] OF Char;
  20.     CONSTRUCTOR Init(AParent : PWindowsObject; AName : PChar);
  21.     PROCEDURE Cmd1(VAR Msg : TMessage); Virtual cm_First + Cm_1;
  22.     PROCEDURE Cmd2(VAR Msg : TMessage); Virtual cm_First + Cm_2;
  23.     PROCEDURE Cmd3(VAR Msg : TMessage); Virtual cm_First + Cm_3;
  24.     PROCEDURE Cmd4(VAR Msg : TMessage); Virtual cm_First + Cm_4;
  25.   END;
  26.  
  27.   PNuFileDialog = ^TNuFileDialog;
  28.   TNuFileDialog = OBJECT(TFileDialog)
  29.     CONSTRUCTOR Init(AParent: PWindowsObject; AName, AFilePath,
  30.       ACaption : PChar);
  31.   END;
  32.  
  33. {--------------------------------------------------}
  34. { TNuFileDialog's methods                          }
  35. {--------------------------------------------------}
  36.   CONSTRUCTOR TNuFileDialog.Init(AParent: PWindowsObject;
  37.     AName, AFilePath, ACaption : PChar);
  38.   BEGIN
  39.     TFileDialog.Init(AParent, AName, AFilePath);
  40.     Caption := ACaption;
  41.   END;
  42.  
  43. {--------------------------------------------------}
  44. { TTestWindow's methods                            }
  45. {--------------------------------------------------}
  46.   CONSTRUCTOR TTestWindow.Init(AParent : PWindowsObject;
  47.     AName : PChar);
  48.   VAR H : hMenu;
  49.   BEGIN
  50.     TWindow.Init(AParent, AName);
  51.     Attr.Menu := LoadMenu(hInstance, AppName);
  52.     StrCopy(B, '*.*');
  53.   END;
  54.  
  55.   PROCEDURE TTestWindow.Cmd1(VAR Msg : TMessage);
  56.   BEGIN
  57.     Application^.ExecDialog(New(PFileDialog,
  58.       Init(@Self, PChar(sd_FileOpen), B)));
  59.   END;
  60.  
  61.   PROCEDURE TTestWindow.Cmd2(VAR Msg : TMessage);
  62.   BEGIN
  63.     Application^.ExecDialog(New(PFileDialog,
  64.       Init(@Self, PChar(sd_FileSave), B)));
  65.   END;
  66.  
  67.   PROCEDURE TTestWindow.Cmd3(VAR Msg : TMessage);
  68.   BEGIN
  69.     Application^.ExecDialog(New(PNuFileDialog,
  70.       Init(@Self, PChar(sd_FileOpen), B, NewOpen)));
  71.   END;
  72.  
  73.   PROCEDURE TTestWindow.Cmd4(VAR Msg : TMessage);
  74.   BEGIN
  75.     Application^.ExecDialog(New(PNuFileDialog,
  76.       Init(@Self, PChar(sd_FileSave), B, NewSave)));
  77.   END;
  78.  
  79. {--------------------------------------------------}
  80. { TMyApplication's method implementations:         }
  81. {--------------------------------------------------}
  82.   PROCEDURE TMyApplication.InitMainWindow;
  83.   BEGIN
  84.     MainWindow := New(PTestWindow, Init(Nil, AppName));
  85.   END;
  86.  
  87. {--------------------------------------------------}
  88. { Main program:                                    }
  89. {--------------------------------------------------}
  90. VAR MyApp: TMyApplication;
  91. BEGIN
  92.   MyApp.Init(AppName);
  93.   MyApp.Run;
  94.   MyApp.Done;
  95. END.
  96.