Lass bloß die Finger vom StayOnTop.
Erstmal ist das Global und nicht nur für dein Programm
und dann macht das einfach nur massiv Probleme.
Beispiel: Eine MessageBox oder Fehlermeldung geht auf, die liegt hinter dem StayOnTop und weil niemand das Fenster sieht, denkt man das Programm hängt. (wegen ShowModal sind ja alle anderen Fenster gesperrt)
Delphi-Quellcode:
// bei Form2
PopupMode := pmExplicit;
PopupParent := Form1;
Und schon ist Form2 immer vor/über Form1.