Hallo!
Folgendes Problem:
Ich habe ein kleines Programm geschrieben, das aus zwei Forms besteht. Das eine enthält das Hauptprogramm. Nachdem auf einen Button geklickt wird, sollen mehrere Aktionen ausgeführt werden. Jetzt kommt das zweite Form ins Spiel. Dieses ist gewissermaßen ein Prozessformular, welches neben der Progress-Bar auch noch ein Label und ein TImage enthält. Das Problem liegt darin, dass offensichtlich die Aktionen, die nachdem ich das Prozessformular auf visible gesetzt habe, den Rechner so beanspruchen, dass er erst nach Beendigung derer (es sind einige HTTP-Aufrufe mithilfe der
Indy-Komponente) das Formular vollständig anzeigt. Da dieses Formular nun aber den Prozess anzeigen soll, wäre es schön, wenn es schon VOR Beginn der Aktionen vollständig geladen wäre.
Meine Frage ist also, wie man das Programm dazu bringt, abzuwarten bis das Prozessformular vollständig angezeigt wird und erst dann die darunter stehenden Aktionen auszuführen.
Der Aufbau der Funktion, um die es geht ist folgender:
Delphi-Quellcode:
procedure TForm1.send;
begin
ProgressForm.visible := true; //Das Prozessform, das vorher schon Created wurde sichtbar machen
// <- hier müsste gewartet werden
while (IsSomething) do begin
DoSomething;
ProgressForm.NaechsterFertig; //Procedure, die die Progressbar aktualisiert
end;
ProgressForm.fertig; //Signalisiert, dass der Prozess abgeschlossen ist
//momentan wird erst an dieser Stelle das Formular vollständig angezeigt
end;
Grundsätzlich ist es so, dass die Progress-Bar schon während des Vorgangs angezeigt wird und das Label (welches auch schon mit NaechsterFertig aktualisiert wird) und das TImages erst am Ende erscheinen.
Also, würd mich freuen, wenn mir da jemand helfen könnte!
MfG
Mathis