ShowModal disabled alle aktuell sichtbaren/enableten Fenster (nicht in der
VCL, sondern daran vorbei direkt im Windows, damit das
VCL-Property unverändert bleibt), bevor es das eigene Fenster anzeigt.
ShowModal -> DisableTaskWindows+DoDisableWindow und EnableTaskWindows (
Vcl.Forms)
Delphi-Quellcode:
//Form1.Enabled := False; // ja, erst False, weil das Property ist "eigentlich" True und das nachfolgende True würde dann nichts tun, weil "unverändert"
//Form1.Enabled := True;
EnableWindow(Form1.Handle, True);
Natürlich sollte man mit sowas aufpassen, damit man nichts durcheinander bringt.
Ich nutze sowas, um z.B. ein eventuell vorher bereits existierendes Log-Fenster weiterhin benutzbar zu lassen.