Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Загадочное Окно

Как можно сделать окошко (подобные есть в DUTraffic, ReGet Deluxe, FlashGet,
Download Master)
которое могло бы быть прозрачным и отображать в себе иконки +
анимацию + разную текстовую информацию?

Больше всего моя идея схожа с окошком в программе DUTraffic (он тоже на Delphi)
но я ни как не пойму как в окошке отображается информация (это
график) которая строится на лету и всё это ещё движется справа на
лево?

Если хотя бы кто-то что знает напишите хоть что-то чтобы я смог
создать похожее плавающее окошко.

Ответить   Sat, 8 Apr 2006 23:46:32 +0300 (#535573)

 

Ответы:

Здравствуйте, VITO.

Само такое окошко использует стиль формы fsStayOnTop для расположения
поверх окон. Возможно также нужно задать BorderStyle. Прозрачностью
управляет св-во AlphaBlendValue (только если Вы пишете под WinXP или
Win2000, а еще если Ваша Делфя нн ниже, кажется, 5-й версии).
Изменения значений AlphaBlendValue будет проявлятся при установленном
AlphaBlend в True.

С графиком, строящемся налету, посложнее. Нужно, думаю, создать
переменную типа TCanvas и строить график на ней, а потом отображать ее
на канву формы. Причем, график, как я понимаю, имеет две фазы работы -
сначала он строится в некотором диапазоне по оси Х. Потом, когда этот
диапазон заполнится, начинается сдвиг начерченного влево. Это
подсказывает алгоротм вычерчивания - до определенного значения
абсциссы ее нужно увеличивать и рисовать в измененой полосе, скажем
так. Как только абсцисса достигнет того значения, при котором график
должен сдвигаться, она перестает изменяться, начинает работать сдвиг
нарисованного влево и прорисовка очередной порции графика. Ширина
очередной порции равна тому, насколько сдвигается график (вернее
наоборот). То есть, с помощью метода CopyRect ту, часть графика,
которая должна сдвинуться влево, копируем на левую сторону канвы, и
строем новый кусок графика справа. А потом копируем эту канву на канву
формы. В принципе, можно попробовать сразу все это делать на канве
формы, но когда я делал бегущую строку, непосредственный способ давал
подрагивание.

Простите, если что непонятно написал, готов ответить на вопросы.

Ответить   Вадим Шешунов Sun, 9 Apr 2006 13:50:38 +0300 (#535653)