Код:
procedure TForm1.Restore(Sender: TObject);
begin
Application.Restore;
SetWindowPos(Application.Handle, HWND_TOPMOST, Left,Top,Width,Height,
SWP_NOMOVE or SWP_NOSIZE)
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnMinimize := Restore;
Application.OnDeactivate := Restore;
end;
Так будет отлавливать сообщение минимизации и восстанавливать окно. По другому нормальным способом нельзя (т.к. Win+D все равно будет сворачивать все окна), а так оно опять разворачивается.