Текущий архив: 2005.10.23;
Скачать: CL | DM;
ВнизКак сделать так чтобы моя форма была всегда поверх всех окон? Найти похожие ветки
← →
тринитротолуол © (2005-09-25 19:12) [0]собственна сабж
← →
ssk © (2005-09-25 19:18) [1]StayOnTop ?
← →
тринитротолуол © (2005-09-25 20:05) [2]тобишь окно программы было поверх всех окон
← →
begin...end © (2005-09-25 20:08) [3]SetWindowPos + WM_WINDOWPOSCHANGING
← →
Eraser © (2005-09-25 23:00) [4]
> тринитротолуол © (25.09.05 19:12)procedure CreateParams(var Params: TCreateParams); override;
...
procedure TfmMain.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
Params.WndParent := GetDesktopWindow;
Params.ExStyle := Params.ExStyle and not WS_EX_APPWINDOW or WS_EX_TOOLWINDOW;
end;
а потом регулируй стилем StayOnTop.
← →
Vitaliy (2005-09-26 07:05) [5]Если на все время надо, можно в свойствах формы указать параметр FormStyle равный fsStayOnTop.
← →
evvcom © (2005-09-26 08:52) [6]
> Как сделать так чтобы моя форма была всегда поверх всех
> окон?
В такой формулировке никак. Представь, что в системе нашелся еще один умник и тоже сделал такое окно. Эти 2 окна перекрывают друг друга. Какое теперь из них должно быть поверх всех?
← →
vertal © (2005-09-27 03:07) [7]
procedure TfmMain.SetAlwaysOnTop(const NewValue: Boolean);
begin
SetWindowPos(Self.Handle, IfThen(NewValue, HWND_TOPMOST, HWND_NOTOPMOST), 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);
fAlwaysOnTop := NewValue;
Self.miAlwaysOnTop.Checked := fAlwaysOnTop;
end;
А если имеется в виду всегда OnTop, даже по отношению к другим окнам со стилем HWND_TOPMOST, то стоит отказаться от этого, так как не полагается программе так нагло себя вести, хотя если абсолютно необходимо, то можно попробовать ловить сообщения активации окон.
← →
evvcom © (2005-09-27 14:03) [8]
> хотя если абсолютно необходимо, то можно попробовать ловить
> сообщения активации окон
А если 2 таких окна будут ловить сообщения? См. [6].
Страницы: 1 вся ветка
Текущий архив: 2005.10.23;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.06 c