Как развернуть форму?

1) Создал Form1 (MainForm) 2) При нажатии на Button, открывается Form2 3) В Form2, срабатывает onActivate, которая имитирует нажатые клавиши Win+N 4) Сворачиваются абсолютно ВСЕ окна в Windows Далее: Мне нужно, что бы развернулись именно мои Form2 and Form1 Как это сделать? _______________________ Я в начале подумал, что поможет вот эта строчка:Form1.WondowState:=wsNormal;Ан нет, не помогло, потом решил что, тут можно вот так вот сделать:Form1.Show;И тоже не помогло.Application.Restore;Странным образом и это не помогает... __________________________ Ощущение складывается такое, что программа вообще не в курсе что её свернули. И из за этого просто не понимает, что я от неё хочу добиться... ____________________________ В общем, есть идеи на этот счёт?
3 ответа

срабатывает onActivate, которая имитирует нажатые клавиши Win+N
собственно а зачем это? такие программы как правило сразу летят в корзину.


А что делает Win+N?


Может быть имеет смысл не "свернуть всё, а потом развернуть моё", а "свернуть всё кроме моего"
procedure TForm1.FormCreate(Sender: TObject);
var
 Wnd : HWND;
begin
 Wnd := Handle;
 repeat
 Wnd := GetNextWindow(Wnd, GW_HWNDNEXT);
 if (GetParent(Wnd) = 0) and (not IsIconic(Wnd)) and (IsWindowVisible(Wnd)) then
 PostMessage(Wnd, WM_SYSCOMMAND, SC_MINIMIZE, 0);
 until Wnd = 0;
end;