Re: Lange Rechnung, ohne dass das Programm "blockiert&a
9. Dez 2004, 18:32
Auch wenn dies immer wieder als Lösung dieser Ploblematik vorgeschlagen wird:
ein schlichtes Aufrufen von Application.ProcessMessages z.B. in einer Schleife ist nicht risikolos.
Leicht nachvollziehbar durch Drücken von Alt+F4 während einer solchen Berechnung -> oft Absturz.
Bei Ausführung von Application.ProcessMessages werden die bis dahin "angesammelten" Messages abgearbeitet. Wenn z.B. der Menuepunkt, über den die Berechnung gestartet wurde, nicht sofort gesperrt wurde, wird der Code beim nächsten Klick darauf während der Berechnung quasi ein 2. Mal gestartet. Jeder Zugriff auf globale Variablen oder Instanzen (z.B. dein Hauptformular) kann dann in die Hose gehen.
Daher setze ich Application.ProcessMessages sparsam ein und wenn doch, sperre ich gerne mein ganzes Formular oder zumindest einige Controls (außer z.B. einem Abort-Knopf).
Roderich
|