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

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

полупрозрачная надпись [D6, Win95/98, WinME, NT4, Win2k, WinXP]


Альфа ©   (2005-06-02 15:28:00) 

Здравствуйте! Как сделать следующее: выводить полупрозрачную надпись периодически через 1/100 секунды поверх всех окон? GetDC(0)+TextOut() не подходит, т.к. надпись затирается если открыть какое нибудь окно. Нужно, чтобы надпись мерцала и была полупрозрачной и это должно работать во всех Windows.


alpet   (2005-06-03 20:10:00) [1]

Перепутал сорри - функция - AlphaBlend.


alpet   (2005-06-03 19:24:00) [2]

Чапаев ©   (03.06.05 13:56) [9]
Для этого достаточно TransparentBlt. Другое дело что надо обрабатывать перемещение и изменение размера всех окнон довольно хитроумно, перед началом перемещения сохраняя изображение всех окон и рабочего стола. Без ловушек здесь естественно не обойтись.


Чапаев   (2005-06-03 13:56:00) [3]

> Где-то я видел пример, создания полупрозрачных окон под 9x -
> что самое удивительное - работало...
В принципе, можно брать (в простейшем случае) среднее арифметическое пиксела десктопа и соответствующего пиксела формы и рисовать сей пиксель вместо оригинального...

Естественно, способ феноменально тормозной.


GrayFace   (2005-06-03 13:31:00) [4]

У меня есть такой пример, но он не рассчитан на StayOnTop.


Eraser   (2005-06-03 13:11:00) [5]

alpet ©   (03.06.05 11:39) [6]

Где-то я видел пример, создания полупрозрачных окон под 9x - что самое удивительное - работало... но примерчик не маленький, и могут возникать глюки.


alpet   (2005-06-03 11:39:00) [6]

Под 9x очень проблемно сделать "полупрозрачную надпись поверх всех окон". Не смотря даже на наличие в 98 функции TransparentBlt.


Neznaika   (2005-06-03 11:26:00) [7]

>>Не будет работать под 9х

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


Чапаев   (2005-06-03 11:17:00) [8]

> Создай полупрозрачную форму без заголовка
Не будет работать под 9х.


alpet   (2005-06-03 11:11:00) [9]

Создай полупрозрачную форму без заголовка (borderStyle=bsNone), установи ее свойство formStyle в fsStayOnTop, размести в середине компонент TLabel с нужной тебе надписью. И не надо никаких периодических выводов.


Чапаев   (2005-06-03 10:50:00) [10]

> выводить полупрозрачную надпись периодически через 1/100
> секунды поверх всех окон? GetDC(0)+TextOut() не подходит, т.к.
> надпись затирается если открыть какое нибудь окно
Хм. Если ты её 100 раз в секунду обновляешь, как же это ты успеваешь заметить, что надпись затёрта?


Eraser   (2005-06-02 21:55:00) [11]

Альфа   (02.06.05 15:28)

"Намертво", чтобы не затиралась - никак.
Полупрозрачнасть легко организовать с пом. св-ва ScanLine или Pixels.


Наверх

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