unit StepDlg;
{Bereich-Abschreitungs-Dialog (ein Mini-Dialog!)}
interface
uses WinProcs,WinTypes,OWindows,ODialogs,
smsh,smsp,mpk3d;
const
ID_Proceed=101;
ID_Timer=ID_StepDlg;
type
PStepDlg=^TStepDlg;
TStepDlg=object(TDialog)
Timer: THandle;
procedure SetupWindow; virtual;
procedure IDProceed(var Msg:TMessage); virtual ID_First+ID_Proceed;
procedure WMTimer(var Msg:TMessage); virtual WM_First+WM_Timer;
procedure WMMovEnd(var Msg:TMessage); virtual WM_First+WM_MovEnd;
destructor Done; virtual;
end;
implementation
procedure TStepDlg.SetupWindow;
begin
inherited SetupWindow;
Timer:=0;
InformDlg:=HWindow; {Rückinformation}
SendMessage(Parent^.HWindow,WM_Proceed,1,0); {Initialisieren}
end;
{"Weiter"-Taste gedrückt; sie bricht ggf. die Wartezeit ab!}
procedure TStepDlg.IDProceed(var Msg:TMessage);
begin
WMTimer(Msg);
end;
procedure TStepDlg.WMTimer(var Msg:TMessage);
begin
if Timer<>0 then begin
KillTimer(HWindow,ID_Timer);
Timer:=0; {ist nicht! automatisch gekillt}
end;
if SendMessage(Parent^.HWindow,WM_Proceed,0,0)=0
{ if DlgResult=0} then EndDlg(0); {Ende und alles fertig!}
end;
procedure TStepDlg.WMMovEnd(var Msg:TMessage);
begin
if BereichWarteCheck then {Stillstandszeit starten}
Timer:=SetTimer(HWindow,ID_Timer,BereichWarte,nil);
end;
destructor TStepDlg.Done;
begin
if Timer<>0 then KillTimer(Timer,ID_Timer);
InformDlg:=0;
inherited Done;
end;
end.
Detected encoding: OEM (CP437) | 1
|
|