home *** CD-ROM | disk | FTP | other *** search
- (***************************************
- * WG-VISION 1.0 BEISPIELPROGRAMM *
- ****************************************
- * *
- * Demonstration der Verwendung eines *
- * Childfensters. Dialog zur Einstel- *
- * lung von Datum und Uhrzeit *
- * *
- ****************************************
- * (c) 1993 Dipl.Phys. Mathias Scholz *
- ***************************************)
-
- {$I COMPILER.INC}
-
- program DateTst;
-
- uses WDecl,
- WApp,
- WEvent,
- WDlg,
- Graph,
- Dos;
-
- const cmDate=101;
-
- type TApplication=object(TApp)
- procedure InitMenuBar; virtual;
- procedure HandleEvent; virtual;
- procedure SetDate;
- end;
-
- PDateWindow=^TDateWindow;
- TDateWindow=object(TDlgWindow)
- constructor Init;
- procedure HandleEvent; virtual;
- procedure SetHelp;
- end;
-
- PHilfe=^THilfe;
- THilfe=object(TDlgWindow)
- constructor Init;
- end;
-
-
- tSetDateTime=record
- Schalter:string[5];
- Datum:string[10];
- Zeit:string[8]
- end;
-
-
- var MyApp : TApplication;
- DT : tSetDateTime;
-
-
- {Implementation TApplication}
-
- procedure TApplication.InitMenuBar;
- begin
- MainMenu('~F~enster',0);
- SubMenu('~E~instellungen',cmDate,0,0,false,false);
- SubMenu('E~x~it Alt-X',cmCloseApplication,0,altX,false,false);
- end;
-
- procedure TApplication.HandleEvent;
- begin
- TProgram.HandleEvent;
- case Event.Command of
- cmDate : SetDate;
- end; {case}
- end;
-
- procedure TApplication.SetDate;
- var Window:PDateWindow;
- begin
- Window:=New(PDateWindow, Init);
- InsertDesktop(Window);
- end;
-
- {Implementation TDateWindow}
-
- constructor TDateWindow.Init;
- var RR:TRect; z:string;
- Jahr,Monat,Tag,Wochentag:word;
- Stunde,Minute,Sekunde,Sek100:word;
- begin
- RR.Assign((GetMaxX div 2)-150,140,(GetMaxX div 2)+150,300);
- TDlgWindow.Init(RR,'Datum & Uhrzeit',winDouble+winPanel+winMenu);
- SetInputLine(95,70,10,'~D~atum ',10,Ziffern-['-']);
- SetInputLine(95,105,8,'~U~hrzeit',8,Ziffern+[':']-['.','-']);
- SetPushButton(200,40,80,22,'OK',cmOK);
- SetPushButton(200,70,80,22,'~A~bbrechen',cmCloseWindow);
- SetPushButton(200,115,80,22,'~H~ilfe',90);
- with DT do
- begin
- Schalter:='LLTTT';
- Datum:=''; Zeit:='';
- GetDate(Jahr,Monat,Tag,Wochentag);
- Str(Tag:2,z);
- Datum:=Datum+z+'.';
- Str(Monat:2,z);
- Datum:=Datum+z+'.';
- Str(Jahr:4,z);
- Datum:=Datum+z;
- GetTime(Stunde,Minute,Sekunde,Sek100);
- Str(Stunde:2,z);
- Zeit:=Zeit+z+':';
- Str(Minute:2,z);
- Zeit:=Zeit+z+':';
- Str(Sekunde:2,z);
- Zeit:=Zeit+z;
- end;
- SetData(DT);
- end;
-
- procedure TDateWindow.HandleEvent;
- begin
- TDlgWindow.HandleEvent;
- if Event.Command=90 then SetHelp;
- if Event.Command=cmOK then
- begin
- with DT do
- begin
-
- {und hier kommen die Routinen zum Setzen des neuen
- Datums und der neuen Uhrzeit hinein. Dazu müssen Sie
- die Strings Datum und Uhrzeit zerpflücken und die
- in das word-Format umgewandelten Teilstrings den
- Routinen SetDate und SetTime übergeben}
-
- end;
- Event.Command:=cmCloseWindow;
- end;
- end;
-
- procedure TDateWindow.SetHelp;
- var HelpWindow:PHilfe;
- begin
- HelpWindow:=New(PHilfe, Init);
- FrameDeaktivated:=true;
- DrawNewFrame;
- HelpWindow^.Draw;
- InsertChildWindow(HelpWindow);
- end;
-
- {Implementation THilfe}
-
- constructor THilfe.Init;
- var RR:TRect;
- begin
- RR.Assign((GetMaxX div 2)-100,180,(GetMaxX div 2)+200,340);
- TDlgWindow.Init(RR,'Hilfe',winDouble+winPanel);
- SetStaticText(150,45,'Einstellen von',CenterText);
- SetStaticText(150,75,'Datum und Uhrzeit',CenterText);
- SetPushButton(110,130,80,22,'OK',cmCloseWindow);
- end;
-
- {Hauptprogramm}
-
- begin
- MyApp.Init('Demonstration Childfenster');
- MyApp.Run;
- MyApp.Done;
- end.
-