home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1991 / 07_08 / grdlagen / obj_wind / toolbox.pas
Encoding:
Pascal/Delphi Source File  |  1991-04-15  |  3.6 KB  |  145 lines

  1. (* ------------------------------------------------------ *)
  2. (*                    TOOLBOX.PAS                         *)
  3. (*       (c) 1991 Andreas Schallmaier & TOOLBOX           *)
  4. (* ------------------------------------------------------ *)
  5. PROGRAM Toolbox;
  6.  
  7. USES
  8.   WObjects,
  9.   WinTypes,
  10.   WinProcs,
  11.   Strings,
  12.   StdDlgs,
  13.   WinDos;
  14.  
  15. {$R Toolbox1.RES}
  16.  
  17. CONST
  18.   cm_About  = 110;
  19.   cm_Open   = 120;
  20.   cm_Save   = 121;
  21.   cm_SaveAs = 122;
  22.  
  23. TYPE
  24.   TMyApplication = OBJECT(TApplication)
  25.     FirstApp : BOOLEAN;
  26.     PROCEDURE InitMainWindow;  VIRTUAL;
  27.     PROCEDURE InitApplication; VIRTUAL;
  28.   END;
  29.  
  30.   PMyWindow = ^TMyWindow;
  31.   TMyWindow = OBJECT(TWindow)
  32.     FileName : ARRAY[0..fsPathName] OF CHAR;
  33.     CONSTRUCTOR Init(AParent : PWindowsObject;
  34.                      ATitle  : PChar);
  35.     PROCEDURE WMLButtonDown(VAR Msg : TMessage);
  36.     VIRTUAL wm_First+wm_LButtonDown;
  37.  
  38.     PROCEDURE WMRButtonDown(VAR Msg : TMessage);
  39.     VIRTUAL wm_First+wm_RButtonDown;
  40.  
  41.     PROCEDURE cmAbout(VAR Msg : TMessage);
  42.     VIRTUAL cm_First+cm_About;
  43.  
  44.     PROCEDURE cmOpen(VAR Msg : TMessage);
  45.     VIRTUAL cm_First+cm_Open;
  46.  
  47.     PROCEDURE cmSave(VAR Msg : TMessage);
  48.     VIRTUAL cm_First+cm_Save;
  49.  
  50.     PROCEDURE cmSaveAs(VAR Msg : TMessage);
  51.     VIRTUAL cm_First+cm_SaveAs;
  52.   END;
  53.  
  54. (* --- TMyApplication ----------------------------------- *)
  55.  
  56.   PROCEDURE TMyApplication.InitMainWindow;
  57.   BEGIN
  58.     IF FirstApp THEN
  59.       MainWindow := NEW(PMyWindow,
  60.       Init(NIL, 'Toolbox Applikation 1 - Erste Instanz'))
  61.     ELSE
  62.       MainWindow := NEW(PMyWindow,
  63.       Init(NIL, 'Toolbox Applikation 1 - Weitere Instanz'));
  64.   END;
  65.  
  66.   PROCEDURE TMyApplication.InitApplication;
  67.   BEGIN
  68.     FirstApp := TRUE;
  69.   END;
  70.  
  71.   (* --- TMyWindow -------------------------------------- *)
  72.  
  73.   CONSTRUCTOR TMyWindow.Init(AParent : PWindowsObject;
  74.                              ATitle  : PChar);
  75.   BEGIN
  76.     TWindow.Init(AParent, ATitle);
  77.     Attr.Menu := LoadMenu(HInstance, PChar(100));
  78.   END;
  79.  
  80.   PROCEDURE TMyWindow.WMLButtonDown(VAR Msg : TMessage);
  81.   CONST
  82.     r = 10;
  83.   VAR
  84.     DC    : HDC;
  85.     Dummy : Bool;
  86.   BEGIN
  87.     DC := GetDC(HWindow);
  88.     Dummy := Ellipse(DC, Msg.LParamLo-r, Msg.LParamHi-r,
  89.                      Msg.LParamLo+r, Msg.LParamHi+r);
  90.     ReleaseDC(HWindow, DC);
  91.   END;
  92.  
  93.   PROCEDURE TMyWindow.WMRButtonDown(VAR Msg : TMessage);
  94.   BEGIN
  95.     InvalidateRect(HWindow, NIL, TRUE);
  96.   END;
  97.  
  98.   PROCEDURE TMyWindow.cmAbout(VAR Msg : TMessage);
  99.   VAR
  100.     Dialog : TDialog;
  101.   BEGIN
  102.     Dialog.Init(@Self, PChar(200));
  103.     Dialog.Execute;
  104.     Dialog.Done;
  105.   END;
  106.  
  107.   PROCEDURE TMyWindow.cmOpen(VAR Msg : TMessage);
  108.   BEGIN
  109.     IF (Application^.ExecDialog(NEW(PFileDialog,
  110.         Init(@Self, PChar(sd_FileOpen),
  111.              StrCopy(FileName, '*.PAS')))) = id_Ok) THEN
  112.       MessageBox(HWindow, FileName,
  113.                  'Angewählte Datei :', mb_Ok);
  114.   END;
  115.  
  116.   PROCEDURE TMyWindow.cmSave(VAR Msg : TMessage);
  117.   BEGIN
  118.     MessageBox(HWindow, 'Noch nicht eingebaut !',
  119.                         'Schwupp !', mb_Ok);
  120.   END;
  121.  
  122.   PROCEDURE TMyWindow.cmSaveAs(VAR Msg : TMessage);
  123.   BEGIN
  124.     IF (Application^.ExecDialog(NEW(PFileDialog,
  125.         Init(@Self, PChar(sd_FileSave),
  126.              StrCopy(FileName, '*.PAS')))) = id_Ok) THEN
  127.       MessageBox(HWindow, FileName,
  128.                  'Angewählte Datei :', mb_Ok);
  129.   END;
  130.  
  131. (* --- Hauptprogramm------------------------------------- *)
  132.  
  133. VAR
  134.   MyApp : TMyApplication;
  135.  
  136. BEGIN
  137.   MyApp.Init('TestApp');
  138.   MyApp.Run;
  139.   MyApp.Done;
  140. END.
  141. (* ------------------------------------------------------ *)
  142. (*                Ende von TOOLBOX.PAS                    *)
  143.  
  144.  
  145.