Einzelnen Beitrag anzeigen

freejay

Registriert seit: 26. Mai 2004
Ort: Nürnberg
272 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Verrückte Eventreihenfolge, wenn Fenster mit ShowModal geöffnet wurde

  Alt 14. Dez 2017, 17:21
Das ist eine Konstellation, auf die die VCL nicht direkt ausgelegt ist.

Schau mal, ob vielleicht OnCloseQuery vorher getriggert wird. Dann könntest Du dort ein Flag setzen und dies für einen vorzeitigen Abbruch der Schleife prüfen.
Ansonsten gibt es vielleicht eine Message, die man noch abfangen kann.
Aber so etwas kann dann auf späteren Delphi-Versionen oder auf verschiedenen Windows-Versionen und -Rechnern schon wieder ganz anders laufen.

Vielleicht kannst Du Dein SubFormular ja auch durch ein Panel ersetzen, das Du einfach in Dein Hauptformular einsetzt.


Grundsätzlich ist sicher sinnvoll, solche längeren Aufgaben in Threads auszulagern. Dazu muss man dann aber auch die konkreten Zuständigkeiten der einzelnen Formulare klären...
ProcessMessages ist immer mit Vorsicht zu genießen.
Nee, OnCloseQuery verhält sich leider genauso - das hatte ich schon ausprobiert. Ich hab das Problem ja auch nur, weil ich das Fenster modal öffnen muss, sonst geht das mit OnClose und OnCloseQuery alles problemlos.

Natürlich ist ProcessMessages irgendwie etwas Getrickse, aber ich finde, dass man in vielen (einfacheren) Fällen damit sehr gut (und problemlos) arbeiten kann, ohne einen großen Overhead für eine andere Lösung basteln zu müssen. Aber in diesem Fall geht's wohl nicht...
[Delphi 11.3.1 Enterprise; Win10/11; MySQL; VCL]
  Mit Zitat antworten Zitat