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

Вниз

Эффект   Найти похожие ветки 

 
Builder   (2004-01-26 23:52) [0]

Уважаемые мастера,
я встречал пару раз на сайтах такой эффект - по экрану всякие там снежинки летают, и проч. причем поверх окна.
Ну я понимаю что там все в jave, а хотелось бы в Дельфи как - нибудь сделать, пробовал как фон *.avi вставлять - получилось не то. Вообщето я так понимаю что нужно как - то резидент делать или что?


 
Brahman ©   (2004-01-27 09:55) [1]

Сначала разберись, что нужно: окно твоей программы, окно Windows (Desktop), да и про "резиденты" забудь:)


 
Builder   (2004-01-27 10:43) [2]

Нужно окно программы, а резидент, не значит assembler"овский
вирус, а просто путь к решению.
Есть множество прикольных приложений - котята там бегают, или шарики летают, вот мне интересно как этоо делается


 
_none_ ©   (2004-01-27 11:16) [3]

to [Builder] создается окошко, на которое вырезается по форме с помощью регионов


 
_none_ ©   (2004-01-27 11:17) [4]

to [Builder] а снежинки на сайте - обычный динамик хтмл


 
DENNIS ©   (2004-01-27 11:54) [5]

_non_ прав - Обычнай HTML c JavaScript. Если тебе нужно могу дать. Делал как-то давно для своей "HOME". А что касается дельфы, то была прога "Snow". Падал снег на окна, панель  пуска. Если для каждой снежинки делать отдельное окно, то какими силами???


 
Brahman ©   (2004-01-27 13:09) [6]

Вот, кстати и путь к решению минимальными силами.
TWebBrowser + DHTML


 
Mihey ©   (2004-01-27 22:20) [7]

>_non_ прав - Обычнай HTML c JavaScript. Если тебе нужно могу дать.

Очень интересно, как ты обратишься к объекту, если у тебя обычный HTML. Уж если точно, то плюс ко всему этому ещё и DHTML обязательно нужен, с его слоями или хотя бы идентифицированием элементов.

>Если для каждой снежинки делать отдельное окно, то какими силами???

Угу, наделать тысячу форм (в Design Time), присвоить им белый цвет и изменять Top и Left. А ещё лучше TImage растянуть на весь экран - всё равно больше не видно.

2 Builder:

Делается это либо через рисовнаие на десктопе, либо через оверлеи, используя DirectX, а всякиз котят можно делать, например, через окна с регионами.


 
DENNIS ©   (2004-01-27 23:42) [8]

Mihey> Ха-ха. Вот только все подряд теперь будем растягивать!

HTML лежит в нете, не надо к нему обращаться. Его вызыват, например, IE. В нем с помощью JS можно менять свойства объектов (в том числе left и top для картинки, но там еще есть ньюансы). Не обязательно DHTML.
Delphi там не при делах.

P.S.
Любишь ты двойки ставить. Лучше объясни человеку как, если знаешь.


 
Mantic0re   (2004-01-28 11:03) [9]

А я бы просто спрайты рисовал на GetWindowDC(MainWinHnd)...
И просто и быстро и без гимора..
Какие там нафиг DHTML..


 
Manticore   (2004-01-28 11:05) [10]

Ну конечно в отдельном потоке,
и каждая снежинка - объект (а можно и не так 8) )


 
Mihey ©   (2004-01-28 20:06) [11]

2 DENNIS:

>HTML лежит в нете, не надо к нему обращаться. Его вызыват, например, IE. В нем с помощью JS можно менять свойства объектов (в том числе left и top для картинки, но там еще есть ньюансы). Не обязательно DHTML. Delphi там не при делах.

Слушай, а ты что-нибудь хорошо знаешь? Вот сделал ты на HTML цветную надпись, например "<font color="#00FF00">Delphi!!!</font>". Вот как ты на JavaScript изменишь цвет этой надписи????? Да никак, потому что в коде ты не сможешь указать, цвет какой именно надписи надо менять! Чистый HTML не индексирует элементы!!!!!

Решение. Вместо этого пишем: "<font id="Sign1" color="#00FF00">Delphi!!!</font>". И вот уже по этому id мы можем обращаться к этой надписи. Так вот этот id - это элемент DHTML. DHTML - это Dynamic HTML, т.е. ДИНАМИЧЕСКИЙ. А просто HTML - статичен. Ты понимаешь разницу?

Блин, чесное слово, если не знаешь, то не вводи остальных в заблуждение. Почему то пока ещё DHTML не был введён, такие снежинки в Интернете не появлялись. По твоему, раньше люди были глупее???


 
Mihey ©   (2004-01-28 20:08) [12]

2 Mantic0re:

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


 
DENNIS ©   (2004-01-28 22:00) [13]

Mihey>>

<html>
<head>
<meta http-equiv="Content-Language" content="ru">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style>
#Sn1 {
 width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn2 {
 width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn3 {
 width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn4 {
 width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn5 {
 width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn6 {
 width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
#Sn7 {
 width: 17px; height: 14px; left: 0px; top: 0px; position: absolute; overflow: auto;
}
</style>
<script language="JavaScript">
<!-- //hide script KDI!
miny=300;
d=document;
function beg() {
d.all.Sn1.style.posLeft=100;
d.all.Sn1.style.posTop=150;
d.all.Sn2.style.posLeft=200;
d.all.Sn2.style.posTop=220;
d.all.Sn3.style.posLeft=300;
d.all.Sn3.style.posTop=100;
d.all.Sn4.style.posLeft=400;
d.all.Sn4.style.posTop=300;
d.all.Sn5.style.posLeft=500;
d.all.Sn5.style.posTop=50;
d.all.Sn6.style.posLeft=600;
d.all.Sn6.style.posTop=300;
d.all.Sn7.style.posLeft=700;
d.all.Sn7.style.posTop=150;
}
function fly() {
x=d.all.Sn1.style.posLeft;
y=d.all.Sn1.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn1.style.posLeft=x;
d.all.Sn1.style.posTop=y;
x=d.all.Sn2.style.posLeft;
y=d.all.Sn2.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn2.style.posLeft=x;
d.all.Sn2.style.posTop=y;
x=d.all.Sn3.style.posLeft;
y=d.all.Sn3.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn3.style.posLeft=x;
d.all.Sn3.style.posTop=y;
x=d.all.Sn4.style.posLeft;
y=d.all.Sn4.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn4.style.posLeft=x;
d.all.Sn4.style.posTop=y;
x=d.all.Sn5.style.posLeft;
y=d.all.Sn5.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn5.style.posLeft=x;
d.all.Sn5.style.posTop=y;
x=d.all.Sn6.style.posLeft;
y=d.all.Sn6.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn6.style.posLeft=x;
d.all.Sn6.style.posTop=y;
x=d.all.Sn7.style.posLeft;
y=d.all.Sn7.style.posTop;
dx=Math.round(Math.random()*2)-1;
dy=Math.round(Math.random()*5);
x=x+dx;
y=y+dy;
if (y>miny) {y=-20};
d.all.Sn7.style.posLeft=x;
d.all.Sn7.style.posTop=y;
setTimeout("fly()", 100);
}
// -->
</script>
.....
<body>
<script language="JavaScript">
<!-- //hide script KDI!
for (i=1;i<8;i++) {
d.write("<span id=Sn"+i+"><img src="images/sn1.gif"></span>");
}
// -->
</script>
</body>
</html>


 
DENNIS ©   (2004-01-28 22:01) [14]

html+JS+Style.


 
Mihey ©   (2004-01-28 23:29) [15]

d.write("<span id=Sn"+i+"><img src="images/sn1.gif"></span>");

А это что?


 
Mantic0re   (2004-01-29 12:11) [16]

2Mihey:

Ну и что, что будут затирать, а ты наверх рисуй (таймер..)


 
Mihey ©   (2004-01-29 17:38) [17]

2 Mantic0re:

>Ну и что, что будут затирать, а ты наверх рисуй (таймер..)

А вот это зря. Если рисовать по таймеру, то останутся моменты, когда окно показалось, но таймер ещё не сработал. К тому же, десктоп - не такой объект, на котором быстро рисуется.

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


 
Mantic0re   (2004-01-30 10:09) [18]

Ну и что?

Смотрится все нормально.
И почему только десктоп - ведь разговор был о собственном окне.

Можно и через регионы, но все равно - медленно,
спрайты быстрее :)


 
Mihey ©   (2004-01-30 20:28) [19]

2 Mantic0re:

Э-э... А как добъёшься прозрачности окна? Рисуя подложку? Тогда работать на компе будет невозможно. Ладно, пофиг. Всё равно мы склоняемся к тому, что надо самому рисовать, а не пытаться .avi загружать - это же так смешно. Avi размером с экран даст такую тормозню....



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

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

Наверх




Память: 0.5 MB
Время: 0.066 c
14-1081406305
Мараканец
2004-04-08 10:38
2004.05.02
Делфи восьмой


1-1081790285
К.С.
2004-04-12 21:18
2004.05.02
Прозрачность части timage


9-1069682833
Spose
2003-11-24 17:07
2004.05.02
Как определить версию DirectX 8.1 и старше?


14-1081838585
REA
2004-04-13 10:43
2004.05.02
Наследование


1-1082060546
lipskiy
2004-04-16 00:22
2004.05.02
Глюк 7-ой дельфы?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский