- Ggf. Mainform.Enabled := False; setzen, solange im Form2 gearbeitet werden soll. Dann wären keine Eingaben im Mainform möglich, wie das dabei mit dem Fokus ist kann ich aktuell nicht testen, denke aber der Fokus kann dann auch nicht aufs Mainform gesetzt werden.
Durch das modale anzeigen von Form2 ist sowieso keine Eingabe in Form1 möglich. Wozu dann noch soviel Käse im Code unterbringen?
Hier nochmal die Erklärung:
Sorry aber soawas ist ein Murks. Er macht das schon richtig so wie er es macht. Das Problem ist ein Windows Fehlverhalten, das seit Vista oder sogar XP besteht. Das Ganze ist auch nicht so einfach zu reproduzieren. Wenn eine Anwendung länger beschäftigt ist und nicht auf Windwos reagiert, macht Windows irgend wie was am Modalverhalten und das kann dann zu diesem Effekt führen. In der Regel hilft es dann, eine andere Anwendung über die Taskbar zu aktivieren und dann wieder auf die eigene zurück zu wechseln. Dadurch erscheint im Normalfall wieder der richtige Modale Dialog zu oberst.
Ich bin mir nicht sicher, ob das ein Fehlverhalten von Delphi Programmen ist oder ob das eine altes Windows Fehlverhalten ist. Am eingenen Programmcode liegt es aber zu 100% nicht.