![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вызов формы без деактивации текущей формы
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.