Autor Beitrag
ardely
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 66



BeitragVerfasst: Mi 27.01.10 12:20 
Hallo an alle,
hier ist mein Problem, in meiner Anwendung zeige ich eine andere Form auf diese Weise

ausblenden 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19326
Erhaltene Danke: 1749

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: 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.