Du könntest die Berechnung in eine Thread packen, macht aber bei Deiner
Anwendung weniger Sinn, da du ja eine direkte Abhängigkeit zwischen den
Berechnungen und der Scrollbarposition hast.
Der Ansatz die Berechnung erst zu starten wenn der Anzeigenknopf gedrückt wurde
ist, so denke ich, der richtige.
Wenn Deine Applikation während der Berechnung einzufrieren scheint, hilft es
meistens ein wenig in den Schleifen der Berechnung ab und an Application.ProcessMessages
aufzurufen.
PS. zu Threads gibt es in der
DP ein ganz brauchbares Tutorial.
Grüße
Klaus