Entwickler-Ecke

Multimedia / Grafik - Wie man eine zweites Form unabhängig laufen kann!


ardely - Mi 27.01.10 12:20
Titel: Wie man eine zweites Form unabhängig laufen kann!
Hallo an alle,
hier ist mein Problem, in meiner Anwendung zeige ich eine andere Form auf diese Weise


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
Form1 ;
...
...
...

Form2Progress.Show; -> // darauf ist ein progressbar mit timer

Procedure Schleife_TGH;  // diese Schleife dauert bis 3 minutes

Form2Progress.Close;   // Wenn fertig stop man denn timer und man schliesst die form
...
...
...



Auf der Form2Progress habe ich eine TProgressBar mit einem Timer eingesetzt, der startet ein Progressbar von min zu max ständigen endlose ... wenn die procedure Schleife_TGH abgeschlossen ist, dann stoppe ich der timer und schliesse die form (diplay) mit Form2Progress.Close

Das Problem: ist man in die Verarbeitung der Schleife_TGH die Anzeige Form2Progress tun nichts mehr, Form2Progress sieht so aus wie gesperrt ..dass heist das progressbar startet nicht man sieht nichts laufen, ich denke beide form müssen unabhängig sein... ich weis aber nicht wie!


Vielen Dank für eine Lösung, Grüße


jaenicke - Mi 27.01.10 12:30

Entweder lagerst du die Berechnung in einen Thread aus oder du sorgst dafür, dass die Paint-Botschaften usw. direkt zwischendurch behandelt werden. Entweder indem du Update beim Formular aufrufst oder mit Application.ProcessMessages.

Ein Thread ist sicher die sauberste Lösung, weil nur dann die Oberfläche wirklich unabhängig weiter läuft.