![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как сделать активным окно
максим © (2008-02-29 03:03:00)форма программы появляется на экране при нажатии hot keys(выползает из угла). Но форма при этом не активна, т.е. она выехала и если яф продолжаю печатать,то печатаю в том окне, которое было и есть активно, а мне надо чтобы в моем окне в memo сразу печатал
как сделать?
Leonid Troyanovsky (2008-03-01 00:31:00) [1]
> Поп Гапон (29.02.08 17:18) [7]
> Нет. Просто это выносит окно на передний план, даже если
Лишнее, лишнее.
RTFM msdn: получивший горячую клавишу поток имеет право
хоть на SetForegroundWindow.
--
Regards, LVT.
ЗЫ Как там насчет правил? Бо, Гапон - вполне себе известный чел.
Поп Гапон (2008-02-29 17:20:00) [2]
> максим (29.02.08 08:34) [6]
>
> получается так что кнопка напанели задач то появляется,
> потом сразу исчезает,но видно... :(
SetWindowLong(Application.Handle, GWL_EXSTYLE, (GetWindowLong(Application.Handle, GWL_EXSTYLE) or WS_EX_TOOLWINDOW) and (not WS_EX_APPWINDOW));
Поп Гапон (2008-02-29 17:18:00) [3]
> Leonid Troyanovsky © (29.02.08 06:05) [2]
>
>
> > Поп Гапон (29.02.08 03:39) [1]
>
> > SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0,
> nil,
> > SPIF_SENDWININICHANGE {or SPIF_UPDATEINIFILE});
>
> Это вовсе лишнее.
Нет. Просто это выносит окно на передний план, даже если идёт ввод с клавиатуры в текущее окно.
SPI_SETFOREGROUNDLOCKTIMEOUT, 0
максим (2008-02-29 08:34:00) [4]получается так что кнопка напанели задач то появляется, потом сразу исчезает,но видно... :(
максим (2008-02-29 08:32:00) [5]как быть если у меня
ShowWindow(Application.handle, SW_HIDE);
максим (2008-02-29 08:25:00) [6]спасибо, в совокупности [1] и [3] - работает :)
Смирнов (2008-02-29 06:54:00) [7]
> выползает из угла
Предполагаю, что используется AnimateWindow, тогда добавь флаг AW_ACTIVATE
Leonid Troyanovsky (2008-02-29 06:05:00) [8]
> Поп Гапон (29.02.08 03:39) [1]
> SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, nil,
> SPIF_SENDWININICHANGE {or SPIF_UPDATEINIFILE});
Это вовсе лишнее.
--
Regards, LVT.
Поп Гапон (2008-02-29 03:39:00) [9]SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, nil, SPIF_SENDWININICHANGE {or SPIF_UPDATEINIFILE});
ShowWindow(Application.Handle,SW_RESTORE);
Application.ProcessMessages;
//
SetWindowPos(Application.Handle,{HWND_TOPMOST}HWND_TOP,0,0,0,0,SWP_NOMOVE or SWP_NOSIZE );
//
Application.ProcessMessages;
//
SetForegroundWindow(Application.Handle);
//
if (MainForm.WindowState=wsMinimized) then
ShowWindow(MainForm.Handle,SW_RESTORE);
Нечто такое