Wenn ich das richtig verstehe, dann soll die Progressform nach einer gewissen Zeit geschlossen werden, wenn eine Aktion im MainForm beendet ist. Aber nicht sofort nach Ende, sondern z.B. nach 2 Sekunden, um dem User noch Zeit zu geben, eine Nachricht "Fertig" zu lesen? Oder so ähnlich?
Das würde ich dann so machen:
Delphi-Quellcode:
TfrmMain.DoSomething;
begin
// ...
// ... operation finished ...
FormFtpprogress.progressTimer.Enabled := True;
end;
procedure TFormFtpprogress.progressTimerTimer(Sender: TObject);
begin
progressTimer.Enabled := false;
Close; // ProgressForm schließen
end;
Genau das Ziel hast du richtig verstanden.
Wenn möglich möchte ich aber eine
Timer-Interaktion im DoSomething vermeiden.
Der Timer soll starten wenn das FormProgress angezeigt wird. Daher möchte ich den Timer auch im FormProgress plazieren.
Alle Timer-Interaktionen sollten auch auf dem FormProgress stattfinden.
Im Prinzip möchte ich im DoSomething nur warten bis das FormProgress geschlossen/auf Hide gesetzt wurde. Danach den DoSomehting weiter ausführen.
Wie kann ich im DoSomething überprüfen ob frmProgress auf hide oder show gesetzt ist ?
Danke für die Hilfe.