Wenn du aus dem Hauptformular ein Fenster mit "ShowModal" aufrufst, ist das im Vordergrund und kein anderes Fenster lässt sich anklicken (von deinem Programm). Show zeigt nur einfach das andere Formular, lässt aber Klicks auf andere Formularfenster zu.
Ich benutze für das "In den Vordergrund setzen" (bzw. in den Hintergrund) diese Prozeduren:
Delphi-Quellcode:
procedure SetWindowPosToFront(
handle:HWND);
begin
SetWindowPos(
Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE
or SWP_NOSIZE);
end;
procedure SetWindowPosToBack(
handle:HWND);
begin
SetWindowPos(
Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOACTIVATE
or SWP_NOMOVE
or SWP_NOSIZE);
end;
//Aufruf:
procedure TForm1.Button1Click(Sender: TObject);
begin
SetWindowPosToFront(self.Handle);
//Setzt die Form1 in den Vordergrund
SetWindowPosToBack(self.Handle);
//Setzt die Form1 in den Hintergrund
end;