Ich möchte mal fies in die ganze TThread-Lösung hier reingrätschen.
Die ist natürlich von der Idee her ein völlig richtiger Ansatz und wenn man sich eh mal mit Threads beschäftigen will, wäre das hier auch ein schönes Ding zum Üben, aber: wenn es nur eine
GUI ist, die eh nichts anderes kann, als diese Daten-Migration, und man etwas basteln will, damit die
GUI für den Benutzer nicht eingefroren erscheint, dann könnte das gute alte Application.ProcessMessages die einfachere und schnellere Möglichkeit sein, zum Ziel zu kommen.
Man kann alle paar hundert oder auch tausend Durchläufe mal Application.ProcessMessages aufrufen, sodass dann alles, was der Benutzer zwischenzeitlich geklickt und verschoben hat, verarbeitet wird. Auch ein Abbrechen-Button, wenn man dabei eine passende Abbruch-Bedingung für die while-Schleife setzt. Vielleicht hilft das ja weiter, an der richtigen Stelle zu suchen.
Wie gesagt, nichts gegen Threads, fände ich aber hier die einfachere und pragmatischere Lösung.
Bis denn
Bommel