Martin hat schon einen guten Hinweis gegeben.
Ich hab eine Schleife in einer ButtonClick Funktion meines
Delphi Programms laufen, die etwa 20 Sekunden andauert.
Während dieser Zeit wird die Hauptform nicht refresht.
Wenn ich in jedem Schleifendurchgang ein ‚Form1.Refresh;‘
mache, dann funktioniert dies zwar, allerdings dauert die
Berechnung dann fast 5 Minuten. Das gleiche passiert, wenn ich
mir den Fortschritt der Schleife per ProgressBar anzeigen
lasse.
Ja, da hat Martin ja schon gesagt, dass das Refresh zu oft durchläuft.
Die Verschachtelung von 2 Schleifen ist schlicht genial! Aber wenn du das nicht schaffen solltest, gibts auch eine einfachere, aber nicht ganz so saubere Lösung. Du deklarierst einfach eine Variable vom Typ integer (meinetwegen i) und tust mit jedem Schleifendurchgang i um eins erhöhen. Wenn i z.B. 500 erreicht hat (mit if-Anweisung abfragen) setzt du i auf 0 zurück und tust nun dein Fenster refreshen.
Das geht auch schon viel schneller , da so ne Incrementierung weit weniger Rechenzeit benötigt, als wie ein kompletter Refresh bei jedem Durchgang.
Vergiss nicht i vor dem Begin der Schleife 0 zuzuweisen, weil sonst könnte i vielleicht ewig zählen wenn die Abfragebedingung ungünstig ist und i am Anfang (in diesem Bsp.) über 500 sein sollte.
Grüße
Fabian
Gruß zurück
Jenson