home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / dtx9203 / tvision / hellor.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1992-03-22  |  3.5 KB  |  114 lines

  1. (* ---------------------------------------------------------------- *)
  2. (*                              HELLOR.PAS                          *)
  3. (*                                                                  *)
  4. (* Eine leicht modifizierte Fassung von HELLO aus \tvdemos, die     *)
  5. (* eine von TOOL erstellte Datei als Include-Datei einbindet und    *)
  6. (* annimmt, dass diese eine Prozedur namens DemoDialog enthält.     *)
  7. (* Dieser Dialog wird ausgeführt, wenn im "Menü" Hello der Punkt    *)
  8. (* Demo gewählt wird.                                               *)
  9. (*                                                                  *)
  10. (*                  (c) 1992 by R.Reichert & DMV-Verlag             *)
  11. (* ---------------------------------------------------------------- *)
  12. PROGRAM HelloResource;
  13.  
  14. USES Objects, Drivers, Views, Menus,
  15.      Dialogs, App, Editors;
  16.  
  17. CONST
  18.   cmDemo = 100;
  19.   RezName= 'DEMODLGR.REZ';
  20.  
  21. TYPE
  22.   pHelloApp = ^tHelloApp;
  23.   tHelloApp = OBJECT (tApplication)
  24.     CONSTRUCTOR Init;
  25.     PROCEDURE HandleEvent (VAR Event: tEvent);                VIRTUAL;
  26.     PROCEDURE InitMenuBar;                                    VIRTUAL;
  27.     PROCEDURE InitStatusLine;                                 VIRTUAL;
  28.   END;
  29.  
  30.   pProtectedStream = ^tProtectedStream;
  31.   tProtectedStream = OBJECT (tBufStream)
  32.     PROCEDURE Error (Code, Info: INTEGER);                    VIRTUAL;
  33.   END;
  34.  
  35. VAR
  36.   ToolDemo:  tHelloApp;
  37.   RezFile:   tResourceFile;
  38.   RezStream: pStream;
  39.  
  40. (* ---------------------------------------------------------------- *)
  41. (*                           tProtectedStream                       *)
  42. (* ---------------------------------------------------------------- *)
  43. PROCEDURE tProtectedStream.Error (Code, Info: INTEGER);
  44. BEGIN
  45.   RunError (255);
  46. END;
  47.  
  48. (* ---------------------------------------------------------------- *)
  49. (*                              tHelloApp                           *)
  50. (* ---------------------------------------------------------------- *)
  51. CONSTRUCTOR tHelloApp.Init;
  52. BEGIN
  53.   RezStream := New (pProtectedStream,
  54.                     Init (RezName, stOpenRead, 4096));
  55.   RezFile.Init (RezStream);
  56.  
  57.   RegisterObjects;
  58.   RegisterViews;
  59.   RegisterMenus;
  60.   RegisterEditors;
  61.   RegisterDialogs;
  62.  
  63.   tApplication.Init;
  64. END;
  65.  
  66. PROCEDURE tHelloApp.HandleEvent(var Event: TEvent);
  67.   {$I DEMODLGR.PAS }
  68. BEGIN
  69.   tApplication.HandleEvent (Event);
  70.   IF (Event.What = evCommand) AND
  71.      (Event.Command = cmDemo) THEN BEGIN
  72.     DemoDialogDialog;
  73.     ClearEvent (Event);
  74.   END;
  75. END;
  76.  
  77. PROCEDURE tHelloApp.InitMenuBar;
  78.   VAR R: tRect;
  79. BEGIN
  80.   GetExtent(R);
  81.   R.B.Y := R.A.Y + 1;
  82.   MenuBar := New (pMenuBar, Init (R, NewMenu (
  83.     NewSubMenu ('~H~ello', hcNoContext, NewMenu (
  84.       NewItem ('~D~emo...','', 0, cmDemo, hcNoContext,
  85.       NewLine (
  86.       NewItem ('E~x~it', 'Alt-X', kbAltX, cmQuit, hcNoContext,
  87.     NIL)))),
  88.   NIL))));
  89. END;
  90.  
  91. PROCEDURE tHelloApp.InitStatusLine;
  92.   VAR R: TRect;
  93. BEGIN
  94.   GetExtent (R);
  95.   R.A.Y := R.B.Y-1;
  96.   StatusLine := New (pStatusLine, Init (R,
  97.     NewStatusDef (0, $FFFF,
  98.       NewStatusKey ('', kbF10, cmMenu,
  99.       NewStatusKey ('~Alt-X~ Exit', kbAltX, cmQuit,
  100.     NIL)),
  101.   NIL)));
  102. END;
  103.  
  104. BEGIN
  105.   ToolDemo.Init;
  106.   ToolDemo.Run;
  107.   ToolDemo.Done;
  108. END.
  109.  
  110. (* ---------------------------------------------------------------- *)
  111. (*                           Ende von HELLO.PAS                     *)
  112. (* ---------------------------------------------------------------- *)
  113.  
  114.