Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Вниз

Поверх всех окон   Найти похожие ветки 

 
Димыч ©   (2006-11-08 15:02) [0]

Как реализовать включение и выключение функции поверх всех окон.


 
Ketmar ©   (2006-11-08 15:05) [1]

не знаю. и никто не знает, я думаю. лично я даже представить такое не могу -- при всём своём богатом и извращённом воображении.


 
Димыч ©   (2006-11-08 15:18) [2]

есть такая вот вещь

setwindowpos(form1.handle,HWND_TOPMOST,form1.Left,form1.Top,form1.Width,form1.He ight,0);

но почему то если запустить новое приложение оно оказывается поверх form1, почему?


 
Ketmar ©   (2006-11-08 15:22) [3]

SetWindowPos(), F1. читать о параметре uFlags.


 
Димыч ©   (2006-11-08 15:24) [4]

Может плохо объяснил чего хочу. Нужно что моя программа оставалась всегда по верх всех остальных приложений.Функция setwindowpos помогаеть, но только временно, почему не знаю?


 
Ketmar ©   (2006-11-08 15:25) [5]

почему-то у меня всё работает. SetWindowPos(handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);, ага?


 
Ketmar ©   (2006-11-08 15:25) [6]

вот торчит, зараза, сверху. упорно. запускаю что-то -- а оно всё равно сверху.


 
Palladin ©   (2006-11-08 15:31) [7]


> Ketmar ©   (08.11.06 15:25) [5]

Task Manager все равно победит :)


 
Anatoly Podgoretsky ©   (2006-11-08 15:31) [8]

> Димыч  (08.11.2006 15:24:04)  [4]

> Нужно что моя программа оставалась всегда по верх всех остальных приложений.

Чего захотел, а если другая программа тоже это желает? Будете друг другу морду бить?


 
RASkov   (2006-11-08 15:33) [9]


> вот торчит, зараза

че торчит?? программа? окно? или...? :)

>Димыч, А StayOnTop не помогает?


 
Димыч ©   (2006-11-08 15:33) [10]

Спасибо, точно торчит, я так понял все дело в SWP_NOMOVE or SWP_NOSIZE.
А как теперь сделать это окно опять "обычны смертным", не поверх всех окон. Сделал вот так

 SetWindowPos (form1.Handle, HWND_NOTOPMOST , 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);


не помогло


 
Ketmar ©   (2006-11-08 15:34) [11]

>[7] Palladin(c) 8-Nov-2006, 15:31
>Task Manager все равно победит :)
а мы его сотрём. %-)

>[9] RASkov 8-Nov-2006, 15:33
>че торчит??
всё торчит.

>>Димыч, А StayOnTop не помогает?
лёгкие пути -- это скучно.


 
Ketmar ©   (2006-11-08 15:36) [12]

>[10] Димыч(c) 8-Nov-2006, 15:33
>не помогло
а почему у меня опять сработало? я что-то снова сделал не так???


 
Palladin ©   (2006-11-08 15:41) [13]


> Ketmar ©   (08.11.06 15:34) [11]

сотрем то понятно, мне просто интересно как он умудряется быть вообще "поверх всех окон, которые поверх всех окон" :)


 
Димыч ©   (2006-11-08 15:42) [14]

SetWindowPos (form1.Handle, HWND_NOTOPMOST , 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE); - правда не помогло


 
Ketmar ©   (2006-11-08 15:43) [15]

>[13] Palladin(c) 8-Nov-2006, 15:41
>сотрем то понятно, мне просто интересно как он умудряется
>быть вообще "поверх всех окон, которые поверх всех окон" :)
а вот такой хитрый, зараза. %-)


 
RASkov   (2006-11-08 15:43) [16]


> мне просто интересно как он умудряется быть вообще "поверх
> всех окон, которые поверх всех окон" :)

Он крут.


 
Ketmar ©   (2006-11-08 15:43) [17]

>[14] Димыч(c) 8-Nov-2006, 15:42
>правда не помогло
ищи у себя баг. я повторю: у меня работает.


 
Димыч ©   (2006-11-08 16:33) [18]


> RASkov   (08.11.06 15:33) [9]
> >Димыч, А StayOnTop не помогает?


Спасибо за совет, открыл глаза. Ну не знал я что это так просто. Вот только теперь проблема, из файла загружаются настройки приложения, среди которых есть параметр "оставаться поверх всех", пробовал при загрузке приложения применять свойство fomrstyle и в oncreate  и в onactivate и в onshow везде ошибка вылетает, куда же запихать


 
Ketmar ©   (2006-11-08 16:35) [19]

не всё так просто. StayOnTop вызывает RecreateForm() (или как она там зовётся?). некрасиво это.


 
Димыч ©   (2006-11-08 16:41) [20]

Блин хоть по таймеру запускай.


 
RASkov   (2006-11-08 21:27) [21]

На FormCreate ошибки нет

procedure TForm1.FormCreate(Sender: TObject);
begin
 FormStyle:=fsStayOnTop;
 CheckBox1.Checked:=True;
end;

procedure TForm1.CheckBox1Click(Sender: TObject);
begin
 if CheckBox1.Checked then FormStyle:=fsStayOnTop else FormStyle:=fsNormal;
end;

И при смене моргает некрасиво... И установка в OnActivate или OnShow вызовет AV

> не всё так просто. StayOnTop вызывает RecreateForm() (или
> как она там зовётся?). некрасиво это.

Наверное RecreateWnd ченить или RecreateHandle.
Собсно там все посмотреть можно...

А вот это работает везде и не моргает:
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);     - Установка StayOnTop
SetWindowPos (Handle, HWND_NOTOPMOST , 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE); - Normal


[14] Димыч ©   (08.11.06 15:42)
> SetWindowPos (form1.Handle, HWND_NOTOPMOST , 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE); - правда не помогло

Может то, что я выделил, в этом проблема...


 
RASkov   (2006-11-08 21:31) [22]

> или OnShow вызовет AV

Т.е. не AV а Raise;
Cannot change Visible in OnShow


 
DVM ©   (2006-11-08 23:10) [23]

Распечатать окно на принтере, наклеить на монитор.


 
Ketmar ©   (2006-11-09 01:00) [24]

>[21] RASkov 8-Nov-2006, 21:27
>Наверное RecreateWnd ченить или RecreateHandle.
>Собсно там все посмотреть можно...
ну лениво мне смотреть. кто знает (или любознателен) -- тот понял. %-)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2006.11.26;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.05 c
15-1162458132
Cyrax
2006-11-02 12:02
2006.11.26
Ограничение прав пользователя в Windows XP


15-1162667740
Raea
2006-11-04 22:15
2006.11.26
Аналоги функций char и ord в C++!


2-1162896730
abba
2006-11-07 13:52
2006.11.26
Ошибкка при записи из одного файла в другой, используя тип. файлы


15-1162669363
antonn
2006-11-04 22:42
2006.11.26
про апачи и прочее для создания сайта на пхп...


15-1162634832
DprYg
2006-11-04 13:07
2006.11.26
Профилировщики





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский