home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9101 / tools / tvision2 / fwdemo.pas < prev   
Encoding:
Pascal/Delphi Source File  |  1991-09-30  |  4.9 KB  |  164 lines

  1. (* ------------------------------------------------------ *)
  2. (*                       FWDEMO.PAS                       *)
  3. (*                  Demo zu TFileWindow                   *)
  4. (*        (c) 1991 Raimond Reichert & DMV-Verlag          *)
  5. (* ------------------------------------------------------ *)
  6. {$M 16384, 0, 600000}
  7.  
  8. PROGRAM tFileWindowDemo;
  9.  
  10. USES Dos, Drivers, Objects, Views, Menus, App,
  11.      FileWin, GadGets, MsgBox;
  12.  
  13. CONST
  14.   cmAbout = 4100;
  15.  
  16. TYPE
  17.   pFileDemoApp = ^tFileDemoApp;
  18.   tFileDemoApp = OBJECT (tFileApplication)
  19.     Heap        : pHeapView;
  20.     Clock       : pClockView;
  21.  
  22.     CONSTRUCTOR Init;
  23.     PROCEDURE   InitScreen;                           VIRTUAL;
  24.     PROCEDURE   InitStatusLine;                       VIRTUAL;
  25.     PROCEDURE   InitMenuBar;                          VIRTUAL;
  26.     PROCEDURE   Idle;                                 VIRTUAL;
  27.     PROCEDURE   HandleEvent(VAR Event : tEvent);      VIRTUAL;
  28.   END;
  29.  
  30.  
  31.   CONSTRUCTOR tFileDemoApp.Init;
  32.   VAR
  33.     R : tRect;
  34.   BEGIN
  35.     tFileApplication.Init;
  36.  
  37.     GetExtent(R);
  38.     Dec(R.B.X);
  39.     R.A.X := R.B.X - 9;
  40.     R.A.Y := R.B.Y - 1;
  41.     Heap  := New(pHeapView, Init(R));
  42.     Insert(ValidView(Heap));
  43.  
  44.     GetExtent(R);
  45.     R.A.X := R.B.X - 9;
  46.     R.B.Y := R.A.Y + 1;
  47.     Clock := New(pClockView, Init(R));
  48.     Insert(ValidView(Clock));
  49.     Message(@Self, evCommand, cmOpenFileWin, NIL);
  50.   END;
  51.  
  52. (* ------------------------------------------------------ *)
  53. (* InitScreen zeigt, wie erweiterte Textmodi genutzt wer- *)
  54. (* den können. ABER ACHTUNG: Der hier verwendete Modi ist *)
  55. (* Tseng ET3000-spezifisch. Wer HIMODE nutzen will, muß   *)
  56. (* den entsprechenden Mode und dessen Auflösung selbst    *)
  57. (* einsetzen.                                             *)
  58. (* ------------------------------------------------------ *)
  59.   PROCEDURE tFileDemoApp.InitScreen;
  60.   VAR
  61.     Regs : Registers;
  62.     s    : STRING;
  63.   BEGIN
  64.     s := ParamStr(1);
  65.     IF UpString(s) = ('/HIMODE') THEN BEGIN
  66.       Regs.AH := $00;
  67.       Regs.AL := $2A;
  68.       Intr($10, Regs);
  69.       ScreenHeight :=  40;
  70.       ScreenWidth  := 100;
  71.     END ELSE
  72.       tFileApplication.InitScreen;
  73.   END;
  74.  
  75.   PROCEDURE tFileDemoApp.InitStatusLine;
  76.   VAR
  77.     R : tRect;
  78.   BEGIN
  79.     GetExtent(R);
  80.     R.A.Y := R.B.Y - 1;
  81.     StatusLine := New(pStatusLine, Init(R,
  82.       NewStatusDef(0, $FFFF,
  83.         NewStatusKey(' ~Alt-X~ Exit ', kbAltX, cmQuit,
  84.         NewStatusKey(' ~Alt-V~erzeichnisfenster ',
  85.                       kbAltV, cmEnterNewDir,
  86.         NewStatusKey(' ~Alt-F3~ Schließen ',
  87.                       kbAltF3, cmClose,
  88.       NIL))),
  89.     NIL)));
  90.   END;
  91.  
  92.   PROCEDURE tFileDemoApp.InitMenuBar;
  93.   VAR
  94.     R : tRect;
  95.   BEGIN
  96.     GetExtent(R);
  97.     R.B.Y := R.A.Y+1;
  98.     MenuBar := New(pMenuBar, Init (R, NewMenu(
  99.       NewSubMenu(' ~'#240'~ ', hcNoContext, NewMenu(
  100.         NewItem('~Ü~ber FWDEMO', '',
  101.                 kbNoKey, cmAbout, hcNoContext,
  102.         NewLine(
  103.         NewItem('Neue ~A~rbeitsfläche', '',
  104.                 kbNoKey, cmClearDesk, hcNoContext,
  105.       NIL)))),
  106.       NewSubMenu(' ~D~atei ', hcNoContext, NewMenu(
  107.         NewItem('Neues ~V~erzeichnis', 'Alt-V',
  108.                 kbAltV, cmEnterNewDir, hcNoContext,
  109.         NewItem('Neue ~S~uchmaske', 'Alt-M',
  110.                 kbAltM, cmEnterNewMask, hcNoContext,
  111.         NewLine(
  112.         NewItem('~D~OS Shell', '',
  113.                 kbNoKey, cmDosShell, hcNoContext,
  114.         NewItem('B~e~enden', 'Alt-X',
  115.                 kbAltX, cmQuit, hcNoContext,
  116.       NIL)))))),
  117.       NewSubMenu(' ~F~enster ', hcNoContext, NewMenu(
  118.         NewItem('~B~ewegen','Ctrl-F5',
  119.                 kbCtrlF5, cmResize, hcNoContext,
  120.         NewItem('~V~ergrößern', 'F5',
  121.                 kbF5, cmZoom, hcNoContext,
  122.         NewItem('~N~ächstes', 'F6',
  123.                 kbF6, cmNext, hcNoContext,
  124.         NewItem('~S~chließen', 'Alt-F3',
  125.                 kbAltF3, cmClose, hcNoContext,
  126.         NewItem('~T~ile', '', kbNoKey, cmTile, hcNoContext,
  127.         NewItem('C~a~scade', '',
  128.                 kbNoKey, cmCascade, hcNoContext,
  129.       NIL))))))),
  130.       NewSubMenu(' ~E~instellung ', hcNoContext, NewMenu(
  131.         NewItem('~U~mschalten neues Fenster', 'F8',
  132.                 kbF8, cmToggleNewWin, hcNoContext,
  133.       NIL)),
  134.     NIL)))))));
  135.   END;
  136.  
  137.   PROCEDURE tFileDemoApp.Idle;
  138.   BEGIN
  139.     tFileApplication.Idle;
  140.     Clock^.Update;
  141.     Heap^.Update;
  142.   END;
  143.  
  144.   PROCEDURE tFileDemoApp.HandleEvent(VAR Event : tEvent);
  145.   BEGIN
  146.     tFileApplication.HandleEvent(Event);
  147.     IF (Event.What = evCommand) AND
  148.        (Event.Command = cmAbout) THEN
  149.       MessageBox(^C + 'Demo zu tFileWindow '+ ^m + ^m +
  150.                  ^C + '(c) 1991 R.Reichert & DMV-Verlag',
  151.                  NIL, mfInformation + mfOkButton);
  152.   END;
  153.  
  154. VAR
  155.   MyApp : tFileDemoApp;
  156.  
  157. BEGIN
  158.   MyApp.Init;
  159.   MyApp.Run;
  160.   MyApp.Done;
  161. END.
  162. (* ------------------------------------------------------ *)
  163. (*                 Ende von FILEWIN.PAS                   *)
  164.