Hallo Bernd,
Du hast natürlich recht. Solch eine Lösung habe ich auch, aber die ist immer mit mehr Aufwand verbunden. Diese nutze ich ich eigentlich immer nur dann, wenn ich vom übergeordneten Programm kein zyklisches Update sicherstellen kann. Das ist aber sehr selten der Fall, deshalb die zweite Lösung. Hat halt den Vorteil, dass das ganze - speziell mit dem managed record - sehr einfach in der Handhabung ist:
Delphi-Quellcode:
var
Progress: TProgress;
begin
for var I := 0 to 1000 do
begin
Progress.UpdateProgress(Format('Progress: %.1f', [I / 10]), I / 1000);
if Progress.Canceled then
Break;
Sleep(10);
end;
end;
Und das könnte man noch weiter optimieren wenn man z.B. das "UpdateProgress" als Funktion macht, welche den Status von "Canceled" zurück gibt... Die managed records waren für mich wirklich ein riesiger Sprung nach vorne und lassen mich C++ doch etwas weniger vermissen
.
Man sollte nie so viel zu tun haben, dass man zum Nachdenken keine Zeit mehr hat. (G.C. Lichtenberg)