Hallo!
Ich nehme an, das Problem ist hinlänglich bekannt, aber ich finde im Forum leider keinen Ansatz, hier also nochmal die Geschichte.
Ich habe eine eigene Klasse von TObjekt abgeleitet und berechne dort irgendwas. Um den Fortschritt der Berechnung mitteilen
zu können, habe ich ein Ereignis
Delphi-Quelltext
1:
| TOnProcess = procedure(PercFinished:Integer) of object |
definiert, das ich zum geeigneten Zeitpunkt per
Delphi-Quelltext
1:
| if assigned(fOnProcess) then fOnProcess(<ausdruck>); |
aufrufe.
nun habe ich auf einer form einen button und eine Progress-Bar, die mir den fortschritt anzeigen soll.
beim klick passiert (metacode) folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6:
| procedure button1Click; pbar.Max := 100; myobject.OnProcess := updateBar(perc:Integer); myobject.berechne; procedure updateBar(perc:Integer); pbar.Position := round(perc*100); |
wenn ich auf den button clicke, fängt die PB bei 0 an und macht lange nichts, bis sie am Ende auf 100 springt.
Ich habe so etwas ähnliches schonmal gehabt, allerdings für ein Label mit Textänderung, und damals
hat
Application.ProcessMessages;
geholfen.
dies hilft in diesem Fall aber nicht, egal ob ich es in updateBar packe, oder die procedur in myobject, die
fOnProcess aufruft.
Wer kennt abhilfe?
Danke schonmal!