Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
ВнизКак сделать чтобы форма при создании не отбирала фокус? Найти похожие ветки
← →
SergP © (2006-07-11 14:43) [0]Имеется некоторое приложение. Периодически в зависимости от неких событий, оно создает окно, с некими сообщениями.
Конструктор этой формы такой:
constructor TfrmFly.Create(colr:TColor;capt,text:string;timeout:byte);
begin
Create(Application);
Color:=colr;
tag:=1;
while flayarray[tag] do tag:=tag+1;
flayarray[tag]:=true;
Timer1.Interval:=timeout*1000;
Left:=Screen.WorkAreaRect.Right-Width;
Top:=Screen.WorkAreaRect.Bottom-Height*tag;
Label1.Caption:=capt;
Label2.Caption:=text;
Show;
Timer1.Enabled:=true;
SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height, SWP_NOREDRAW);
end;
Проблема в том что созданное окошко забирает на себя фокус.
А это неудобно, особенно когда работать приходится с другим приложением.
Например набираю текст в ворде, в определенный момент появляется данное окошко с сообщением, и фокус с ворда переходит на него.
Как избавится от этого?
← →
unknown © (2006-07-11 15:09) [1]SetWindowPos(Handle,HWND_NOTOPMOST,Left,Top,Width, Height, SWP_NOREDRAW);
← →
SergP. (2006-07-11 15:35) [2]> [1] unknown © (11.07.06 15:09)
> SetWindowPos(Handle,HWND_NOTOPMOST,Left,Top,Width, Height,
> SWP_NOREDRAW);
проблема в том что окно должно быть "поверх всех окон" но не отбирать фокус...
← →
unknown © (2006-07-11 16:06) [3]SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height, SWP_NOACTIVATE);
← →
Leonid Troyanovsky © (2006-07-11 19:05) [4]
> SergP. (11.07.06 15:35) [2]
> проблема в том что окно должно быть "поверх всех окон" но
> не отбирать фокус...
http://rsdn.ru/Forum/Message.aspx?mid=466741&only=1
Вообще-то, отобрать фокус Show может только
у форм своего приложения (но, никак у ворда).
Если, конечно, не менялись настройки системы в сторону old-style.
Ну, а чтобы не отбирать даже у своих, то можно showna vs show
http://groups.google.com/group/fido7.ru.delphi/msg/8f5d2648407f7aa6
--
Regards, LVT.
← →
SergP. (2006-07-11 19:17) [5]> Вообще-то, отобрать фокус Show может только
> у форм своего приложения (но, никак у ворда).
> ...
>Ну, а чтобы не отбирать даже у своих, то можно showna vs show
В принципе так:
> SetWindowPos(Handle,HWND_TOPMOST,Left,Top,Width, Height,
> SWP_NOACTIVATE);
работает уже нормально.
У своих конечно отбирает фокус, но свои меня не интересуют...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c