Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

мое окно топнее всех .Всегда.


slpro ©   (2003-02-24 10:32:00) 

даже если мое окно теряет фокус , оно должно быть поверх всех.
Делаю такую штуку частым таймером.

Это не красиво и неправильно.
SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, ClientHeight, SWP_NOMOVE or SWP_SHOWWINDOW);

Скажите как победить ? Знаю что можно решить вопрос красиво.Спасибо


DVM   (2003-02-26 12:35:00) [1]


> На дно нельзя по той же причине, что и на верх...;-)

нет, похоже на дно все таки можно - пример эксплорер. Я что то не видел пока программы, способной расположится между десктопом и значками эксплорера на десктопе. Наверное в виндах есть для этого какие то средства (может и скрытые).


slpro   (2003-02-26 09:17:00) [2]

При одном экземпляре программы))


slpro   (2003-02-26 09:12:00) [3]

М да .... только таймер!?
Говорить чаще других что я топ.


jack128   (2003-02-26 07:52:00) [4]

На дно нельзя по той же причине, что и на верх...;-)


DVM   (2003-02-25 18:26:00) [5]

Попытка сделать окно выше всех - то же самое, что попытка придумать число больше всех других (связь прямая). На дно - можно, наверх - нельзя.


DVM   (2003-02-25 18:22:00) [6]

Ну и что, думаете что сделали. Теперь запустите две копии своей программы и наслаждайтесь эффектом, когда одно ваше окно "не топнее всех"


[lamer]Barmaglot   (2003-02-25 15:54:00) [7]

Он самый.

Sorry за Offtopic...


gsu   (2003-02-25 15:31:00) [8]

>> [lamer]Barmaglot © (25.02.03 14:49)
lamer - это клан что ли


[lamer]Barmaglot   (2003-02-25 14:49:00) [9]

Может я не прав, но отловить WM_Paint? + ValidateRect


slpro   (2003-02-25 14:48:00) [10]

gsu Спасибо!

attachthreadinput+setforegroundwindow


Теперь все красиво.
Лечится вызовом 2-х функций в OnShow:

SetWindowPos(Handle,
HWND_TOPMOST,
Left,
Top,
Width,
Height,
SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);
SetForegroundWindow(Form1.Handle); SetWindowPos(Form1.Handle,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE+SWP_NOSIZE)


Один коментарий могут перенести в рубрику потрепатся.)))
Чей этаж выше, и окно тоже.


slpro   (2003-02-25 14:16:00) [11]

2 Anatoly Podgoretsky чейтаймер чаще, тот и выше!:)


gsu   (2003-02-25 14:14:00) [12]

attachthreadinput+setforegroundwindow


slpro   (2003-02-25 14:11:00) [13]


Только программно надо!


Gde to v svoistvah formi est" Always on top.
Я даже знаю где(видел пару раз).)))

FormStyle := fsStayOnTop --- Такой топ мне не топ.Все знают какой он. Пускай форма без фокуса будет fsStayOnTop . Кто может без таймера?


___ALex___   (2003-02-24 13:33:00) [14]

FormStyle := fsStayOnTop


Anatoly Podgoretsky   (2003-02-24 13:21:00) [15]

А мое окно, я то же хочу и выше твоего.
Будем драться за высоту?


Snap   (2003-02-24 13:17:00) [16]

Gde to v svoistvah formi est" Always on top. A esli ne programmno, to est" plugin dla Total Commander, Tip Top nazivaetsa, tak on dazhe prozrachnost u lubogo okna mozhet postavit".


DVM   (2003-02-24 10:52:00) [17]


> Делаю такую штуку частым таймером.

и правильно делаешь так как только так можно вылезти поверх всего, нотя бы на короткое время.


Наверх

Титульная страница Поиск, карта сайта Написать письмо