Einzelnen Beitrag anzeigen

Int3g3r

Registriert seit: 28. Nov 2018
Ort: Schweiz
118 Beiträge
 
Delphi 10.3 Rio
 
#6

AW: Timer wird Blockiert

  Alt 28. Jun 2019, 10:01
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.

Geändert von Int3g3r (28. Jun 2019 um 10:07 Uhr)
  Mit Zitat antworten Zitat