![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Поместить форму программы поверх всех окон [D6, WinXP]
AndreykA © (2004-11-11 10:46:00)Доброго времени всем. Прошу кто знает, подскажите. Задача заключается в том, что необходимо поместить форму программы поверх всех окон, т.е когда запущено какое-то приложение в полноэкранном режиме(например игра), форма должна находиться поверх игры и играя можно было бы видеть форму(на ней периодически обновляется информация, поэтому видеть ее нужно постоянно). Просто поставить свойство формы fsStayOnTop - не помогает, при запуске програмы в процессе игры (через горячие клавиши) форма показывается и тут же пропадает.
Заранее спасибо.
alles (2004-11-12 18:44:00) [1]sorry:
Почему, если присвоить свойству FormStyle значение fsStayOnTop, форма так и не остается на самом верху?
Просто добавьте application.RestoreTopMosts в обработчик события формы OnPaint. Это ошибка.
Могли бы вы рассказать об этом чуть-чуть поподробнее? Delphi где-то в неправильном месте осуществляет вызов NormalizeTopMosts?
Borland говорит что это Windows, но это случается когда StayonTop-форма НЕ является главной формой. (Некоторые английские программисты чтобы получить эту отговорку потратили несколько сотен долларов, звоня в американскую службу помощи по телефону 1-800).
alles (2004-11-12 18:40:00) [2]Kuliba2000:
Почему, если присвоить свойству FormStyle значение fsStayOnTop, форма так и не остается на самом верху?
Почему, если присвоить свойству FormStyle значение fsStayOnTop, форма так и не остается на самом верху?
Могли бы вы рассказать об этом чуть-чуть поподробнее? Delphi где-то в неправильном месте осуществляет вызов NormalizeTopMosts?
Могли бы вы рассказать об этом чуть-чуть поподробнее? Delphi где-то в неправильном месте осуществляет вызов NormalizeTopMosts?
AndreykA (2004-11-12 16:43:00) [3]справка из делфи:
Value : HWND_TOPMOST
Meaning : Places the window above all non-topmost windows. The window maintains its topmost position even when it is deactivated.
AndreykA (2004-11-12 16:43:00) [4]Так что такой вариант не прокатывает :(
begin...end (2004-11-11 18:52:00) [5]AndreykA (11.11.04 11:30) [3]
Может, попробовать SetWindowPos c HWND_TOPMOST ?
begin...end (2004-11-11 18:52:00) [6]Хотя нет, скорее всего не поможет...
AndreykA (2004-11-11 18:48:00) [7]Так что, так никто и не подскажет это сделать? :(
AndreykA (2004-11-11 11:30:00) [8]Попробовал, поставил на форму таймер и каждую милисекунду делаю show - пару раз померцала форма, что на ней было даже не успел разглядеть, а потом даже мерцать перестала...
может еще какой вариант есть?
Заранее спасибо.
TUser (2004-11-11 11:18:00) [9]В таймере - Show
cvg (2004-11-11 11:15:00) [10]У меня проблема обратная: мудрый чувак, который писал заготовку для моей программы, как-то по моей просьбе подсказал мне, как сделать, чтобы окто проги было поверх всех окон. Но как он это сделал, я забыл, а сам найти не могу. В этот форум как-то писал -- ничего не ответили. А позвонить ему я смогу (если смогу еще) только вечером.