home *** CD-ROM | disk | FTP | other *** search
/ TopWare 18: Liquid / Image.iso / liquid / top1143 / gepackt.exe / BSPQTSW.EXE / DATETST.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1993-06-28  |  3.9 KB  |  165 lines

  1. (***************************************
  2. * WG-VISION 1.0   BEISPIELPROGRAMM     *
  3. ****************************************
  4. *                                      *
  5. * Demonstration der Verwendung eines   *
  6. * Childfensters. Dialog zur Einstel-   *
  7. * lung von Datum und Uhrzeit           *
  8. *                                      *
  9. ****************************************
  10. * (c) 1993 Dipl.Phys. Mathias Scholz   *
  11. ***************************************)
  12.  
  13. {$I COMPILER.INC}
  14.  
  15. program DateTst;
  16.  
  17. uses WDecl,
  18.      WApp,
  19.      WEvent,
  20.      WDlg,
  21.      Graph,
  22.      Dos;
  23.  
  24. const cmDate=101;
  25.  
  26. type TApplication=object(TApp)
  27.       procedure InitMenuBar; virtual;
  28.       procedure HandleEvent; virtual;
  29.       procedure SetDate;
  30.      end;
  31.  
  32.      PDateWindow=^TDateWindow;
  33.      TDateWindow=object(TDlgWindow)
  34.       constructor Init;
  35.       procedure HandleEvent; virtual;
  36.       procedure SetHelp;
  37.      end;
  38.  
  39.      PHilfe=^THilfe;
  40.      THilfe=object(TDlgWindow)
  41.       constructor Init;
  42.      end;
  43.  
  44.  
  45.      tSetDateTime=record
  46.                     Schalter:string[5];
  47.                     Datum:string[10];
  48.                     Zeit:string[8]
  49.                   end;
  50.  
  51.  
  52. var MyApp : TApplication;
  53.     DT    : tSetDateTime;
  54.  
  55.  
  56. {Implementation TApplication}
  57.  
  58. procedure TApplication.InitMenuBar;
  59. begin
  60.   MainMenu('~F~enster',0);
  61.    SubMenu('~E~instellungen',cmDate,0,0,false,false);
  62.    SubMenu('E~x~it  Alt-X',cmCloseApplication,0,altX,false,false);
  63. end;
  64.  
  65. procedure TApplication.HandleEvent;
  66. begin
  67.   TProgram.HandleEvent;
  68.   case Event.Command of
  69.    cmDate : SetDate;
  70.   end; {case}
  71. end;
  72.  
  73. procedure TApplication.SetDate;
  74. var Window:PDateWindow;
  75. begin
  76.   Window:=New(PDateWindow, Init);
  77.   InsertDesktop(Window);
  78. end;
  79.  
  80. {Implementation TDateWindow}
  81.  
  82. constructor TDateWindow.Init;
  83. var RR:TRect; z:string;
  84.     Jahr,Monat,Tag,Wochentag:word;
  85.     Stunde,Minute,Sekunde,Sek100:word;
  86. begin
  87.   RR.Assign((GetMaxX div 2)-150,140,(GetMaxX div 2)+150,300);
  88.   TDlgWindow.Init(RR,'Datum & Uhrzeit',winDouble+winPanel+winMenu);
  89.   SetInputLine(95,70,10,'~D~atum  ',10,Ziffern-['-']);
  90.   SetInputLine(95,105,8,'~U~hrzeit',8,Ziffern+[':']-['.','-']);
  91.   SetPushButton(200,40,80,22,'OK',cmOK);
  92.   SetPushButton(200,70,80,22,'~A~bbrechen',cmCloseWindow);
  93.   SetPushButton(200,115,80,22,'~H~ilfe',90);
  94.   with DT do
  95.    begin
  96.      Schalter:='LLTTT';
  97.      Datum:=''; Zeit:='';
  98.      GetDate(Jahr,Monat,Tag,Wochentag);
  99.      Str(Tag:2,z);
  100.      Datum:=Datum+z+'.';
  101.      Str(Monat:2,z);
  102.      Datum:=Datum+z+'.';
  103.      Str(Jahr:4,z);
  104.      Datum:=Datum+z;
  105.      GetTime(Stunde,Minute,Sekunde,Sek100);
  106.      Str(Stunde:2,z);
  107.      Zeit:=Zeit+z+':';
  108.      Str(Minute:2,z);
  109.      Zeit:=Zeit+z+':';
  110.      Str(Sekunde:2,z);
  111.      Zeit:=Zeit+z;
  112.    end;
  113.   SetData(DT);
  114. end;
  115.  
  116. procedure TDateWindow.HandleEvent;
  117. begin
  118.   TDlgWindow.HandleEvent;
  119.   if Event.Command=90 then SetHelp;
  120.   if Event.Command=cmOK then
  121.    begin
  122.      with DT do
  123.       begin
  124.  
  125.         {und hier kommen die Routinen zum Setzen des neuen
  126.         Datums und der neuen Uhrzeit hinein. Dazu müssen Sie
  127.         die Strings Datum und Uhrzeit zerpflücken und die
  128.         in das word-Format umgewandelten Teilstrings den
  129.         Routinen SetDate und SetTime übergeben}
  130.  
  131.       end;
  132.      Event.Command:=cmCloseWindow;
  133.    end;
  134. end;
  135.  
  136. procedure TDateWindow.SetHelp;
  137. var HelpWindow:PHilfe;
  138. begin
  139.   HelpWindow:=New(PHilfe, Init);
  140.   FrameDeaktivated:=true;
  141.   DrawNewFrame;
  142.   HelpWindow^.Draw;
  143.   InsertChildWindow(HelpWindow);
  144. end;
  145.  
  146. {Implementation THilfe}
  147.  
  148. constructor THilfe.Init;
  149. var RR:TRect;
  150. begin
  151.   RR.Assign((GetMaxX div 2)-100,180,(GetMaxX div 2)+200,340);
  152.   TDlgWindow.Init(RR,'Hilfe',winDouble+winPanel);
  153.   SetStaticText(150,45,'Einstellen von',CenterText);
  154.   SetStaticText(150,75,'Datum und Uhrzeit',CenterText);
  155.   SetPushButton(110,130,80,22,'OK',cmCloseWindow);
  156. end;
  157.  
  158. {Hauptprogramm}
  159.  
  160. begin
  161.   MyApp.Init('Demonstration Childfenster');
  162.   MyApp.Run;
  163.   MyApp.Done;
  164. end.
  165.