Hallo Leute,
ich würde gerne einige Unterfenster meiner Anwendung zu einer bestimmten Zeit schließen. Bisher habe ich das mit TTimer gemacht, musste aber leider feststellen, dass das nicht 100%ig funktioniert. Hatte da beim OnCreate die verbleibende Zeit errechnet und dies dem TTimer als Interval übergeben. Da gab es leider immer paar Sekunden Abweichung.
Nun würde ich es gerne mit einem Thread lösen. Habe das jetzt so probiert:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| TAutoCloseForm = class(TThread) private procedure UpdateCounter; virtual; protected procedure Execute; override; public AutoCloseTime: TDateTime; constructor Create(CloseTime: TDateTime); end; . . . constructor TAutoCloseForm.Create; begin Inherited Create(true); Priority:= tpIdle; Resume; AutoCloseTime:=CloseTime; end;
procedure TAutoCloseForm.Execute; begin while not terminated do Synchronize(UpdateCounter); end;
procedure TAutoCloseForm.UpdateCounter; begin if Now=AutoCloseTime then begin Terminate; end; end; |
Leider kann ich dann mit Close das Formular nicht schließen. Wie geht das?? Mit TfmForm2.Close geht es auch nicht
Auch und außerdem habe ich das Problem, wie ich die Uhrzeit dem Thread übergebe, diese soll in AutoCloseTime stehen...
Über Tipps würde ich mich freuen. Danke
Ciao makena