Hallo allseits,
es gibt Dinge, die schiebt man immer wieder auf, und sie holen einen immer wieder ein Ich suche Vorschläge/Tutorials, wie man folgendes Allerweltsproblem effizient und sauber löst.
Man nehme ein VCL Form, und einen Button. Drückt man den Button, rennt eine OnClick Routine los, und die läuft sehr, sehr, sehr lange. Deshalb wäre es nützlich, einen „Abbrechen“ Button einzublenden, und wenn der Anwender draufdrückt, nach Rückfrage ob er sich sicher ist genau das zu tun, allerdings nicht das ganze programm, sondern nur Zurückkehren zum Hauptformular.
Bisher helfe ich mir damit, dass in den Schleifen der langen Prozedur immer mal wieder ein Application.Processmessages eingestreut ist, und dass die Schleifen, jede für sich, immer wieder mal eine (vom Abbrechen Button gesetzte Variable, nennen wir sie „DoAbort“, testen. Ist sie gesetzt, wird mit Abbruchbedingungen und Sprungbefehlen versucht, sich aus der Tiefe der Aufrufe irgendwie wieder rauszuwursteln. Hässlich und Fehleranfällig ist das.
Irgendwie sagt mir mein Gefühl, müsste es auch eleganter gehen, und irgendwie habe ich das Gefühl, dass eine try Konstruktion mit einem Custom Event der Schlüssel zum Erfolg sein könnte. Aber geht das, und besteht nicht die Gefahr, dass die Speicherverwaltung durcheinandergerät wenn man einfach so wild von irgendeinem Programmteil in irgendeinen anderen Programmteil springt und dort weiter macht?
Kann mir jemand ein paar Leads zukommen lassen wo ich mich einlesen kann?
Armin.