Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вызов формы без деактивации текущей формы


ViToTiV ©   (2009-08-27 14:36:00) 

Подскажите, как мне показать динамическую форму, но что бы она не деактивировала текущую форму (это может быть главная, а может быть и другая динамическая)?
Можно на activate поставить
SendMessage(Screen.ActiveForm.Handle, WM_NCACTIVATE, 1, 0);
Но это не работает, если владелец формы GetDesktopWindow (что бы отображалась кнопка на таскбаре)


ViToTiV   (2009-08-31 15:08:00) [1]


> SetForegroundWindow(GetDesktopWindow)

Но так будет всегда активный десктоп после закрытия формы, а если было активно окно какой-то программы, должно стать активным то окно.
Получается, до открытия моей формы нужно сначала получать дескриптор активного окна, а по закрытии делать SetForegroundWindow(дескриптор окна)? А проще никак? :(


Leonid Troyanovsky   (2009-08-31 13:13:00) [2]


> ViToTiV   (31.08.09 11:10) [5]

> Можно как-то закрыть дочернюю форму у которой parent=GetDesktopWindow

SetForegroundWindow(GetDesktopWindow)

--
Regards, LVT.


ViToTiV   (2009-08-31 11:10:00) [3]

Мой второй вопрос так и остался открытым:
Можно как-то закрыть дочернюю форму у которой parent=GetDesktopWindowно что бы после закрытия не активизировалась главная форма? Если она открыта, то она выходит на передний план.


Leonid Troyanovsky   (2009-08-27 21:33:00) [4]


> ViToTiV   (27.08.09 16:08) [3]

> Хм... а при открытии формы Вашим методом

Это не мой, увидел у Peter Below, но, т.к. кода 2 строки,
никто на него не претендует.
А у Питера можно найти много полезных приемов.

--
Regards, LVT.


ViToTiV   (2009-08-27 16:08:00) [5]

Хм... а при открытии формы Вашим методом, послее её закрытия, главное окно не активизируется


ViToTiV   (2009-08-27 16:03:00) [6]

Спасибо, помогло :)
Притом я вспомнил, что уже это где-то использовал.

Тогда ещё вопрос в продолжение этой темы. Как мне потом закрыть эту форму, но что бы после закрытия не активизировалось главное окно программы? пробовал много вариантов, но ничего не помогает. :( Всегда главная форма сразу после зарытия выходит на передний план.


Leonid Troyanovsky   (2009-08-27 14:46:00) [7]


> ViToTiV   (27.08.09 14:36)  

> Подскажите, как мне показать динамическую форму, но что
> бы она не деактивировала текущую форму (это может быть главная,
>  а может быть и другая динамическая)?

Попробуй так:

procedure TFormX.ShowNA;
begin
 ShowWindow(Handle, SW_SHOWNA);
 Visible := True;
end;

--
Regards, LVT.


Наверх

Титульная страница Поиск, карта сайта Написать письмо