![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
поверх всех окон [D7, WinXP]
Grinder © (2004-02-02 13:49:00)мастера, может кто подскажет, как для неглавного окна сделать так, чтобы в системе оно было поверх всех?
Grinder (2004-02-03 00:20:00) [1]2 копии не запустешь. Нельзя. А по таймеру моргание идёт нехорошее. Вот что плохо. Пробовал на Application.OnIdle. Тоже.
DVM (2004-02-02 19:05:00) [2]
> но как только создаю ещё одно окно, то это свойство приходится
> снова вызывать.
По таймеру, по таймеру. Причем выше будет тот, чей таймер чаще. А еще выше будут игры под DirectX.
А как ты думаешь, что будет если запустить две копии твой программы? :)
grinder (2004-02-02 18:58:00) [3]а вызывать его что-ли по таймеру?
Я написал такую процедурку
// Окно поверъ других
procedure OnTop(Form: Thandle; const ShowOnTop: Boolean);
var
Where: HWnd;
begin
if ShowOnTop then begin
Where := HWND_TOPMOST;
SetParent(form, HWND_Desktop);
end
else
Where := HWND_NOTOPMOST;
SetWindowPos(Form, Where, 0, 0, 0, 0,
SWP_NOACTIVATE or SWP_NOMOVE or
SWP_NOSIZE or SWP_NOSENDCHANGING);
BringWindowToTop(Where);
end;
но как только создаю ещё одно окно, то это свойство приходится снова вызывать.
Игорь Шевченко (2004-02-02 14:06:00) [4]Parent'ом ему назначить HWND_Desktop и SetWindowPos (YourHandle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE or SWP_NOMOVE);
Окно должно иметь стиль WS_POPUP