-
-
никак
-
А Винамп же как-то это делает?!
-
> А Винамп же как-то это делает?!
из двух винампов один все же ниже другого
-
Не понял...
-
> Не понял...
окно не может быть всегда выше всех других окон ибо всегда найдется другое такое окно кторое тоже хочет быть выше
-
Попытаться удержаться наверху как можно дольше можно используя SetWindowPos(...., HWND_TOPMOST) + обработку сообщения WM_WINDOWPOSCHANGING
-
> DVM (22.04.2008 15:07:06) [6]
Да ладно не мучайся, просто запусти два экземпляра и попробуй осуществить свою мечту.
-
> Anatoly Podgoretsky © (22.04.08 15:40) [7]
> попробуй осуществить свою мечту.
Мою мечту???
-
используй таймер.
т.е. при каждом срабатывании таймера (например, с интервалом в 1 сек или меньше) просто вызывай SetWindowPos(..., HWND_TOPMOST...)
как-то я писал прогу типа локера, так вот этой штукой и спасалсо.
ЗЫ
такое окно и диспетчер задач будет загораживать собой ;)
-
> [9] Алексей К. (24.04.08 09:47)
> такое окно и диспетчер задач будет загораживать собой ;)
Ну а из двух таких окон - кто царь горы? :)
-
....т.е. даже не обязательно это будут приложения одного автора, а разных... двух разных и больных авторов :)
Это "хорошо" еще секунда или более, не так эфектно, а если меньше интервал.... во борьба начнется :)
-
> DVM ©
+ вычисление конкурентов и TerminateProcess :)
-
Устраиваем турнир!
Желающие, пишите программу для удержания окна выше остальных. Победит та программа, чье окно окажеться выше всех.
Порядок запуска процессов выбирается случайно.
Окно должно быть любого цвета с различимой надписью: имя участника.
Условие: Касперский запущенный на всю катушку не должен паниковать по поводу методов удержания окна.
Заодно и выясним=)
-
> Dmitry S © (24.04.08 23:48) [13]
В конкурсе участвуют окна, распечатанные на принтере?
-
> [14] DVM © (25.04.08 10:39)
> В конкурсе участвуют окна, распечатанные на принтере?
Могут, только участовавать будут в своей весовой категории...
Кто первый прелипил, тот и проиграл...
:о)
-
> {RASkov} © (25.04.08 12:45) [15]
Тогда я предлагаю проецировать изображение окна с помощью проектора на поверхность экрана монитора. И пусть кто-нибудь попробует его перекрыть.
-
SetWindowPos(Handle, HWND_TOPMOST, 0,0,0,0, SWP_NOMOVE OR SWP_NOSIZE OR SWP_SHOWWINDOW);
-
> Насколько я знаю, FormStyle := fsStayOnTop делает окно поверх
> только остальных окон приложения.
Полагаю, ваша StayOnTop-форма утопает при переключении на другое приложение? Тогда смею предположить, что это неглавная форма, так как с главными такого эффекта не наблюдается. VCL очень хитро обращается с StayOnTop, в частности, этот флажок сбрасывается для всех форм кроме главной при деактивации приложения. Подавить такое поведение можно несколькими способами, я предпочитаю такой. Для формы, которая должна быть StayOnTop перекрываем CreateParams таким образом:
TForm2 = class(TForm)
protected
procedure CreateParams(var Params: TCreateParams); override;
end;
...
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent:=0;
Params.ExStyle:=Params.ExStyle or WS_EX_TOPMOST;
end;
-
Хы-хы... Оказывается, в Delphi 10 Lite fsStayOnTop делает форму поверх всех окон в системе... А я мозги компостировал...