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

Вниз

Оверлеи   Найти похожие ветки 

 
Opilki_Inside ©   (2004-02-25 22:56) [0]

Всем привет!

Где можно найти какие-нибудь примеры работы с оверлееями на Делфи?
Пробывал через яндекс искать, ничего дельного так и не нашел... тока один пример на vс++ :(

И вобще, что такое оверлеи?? а то я похоже запутался...


 
Sapersky ©   (2004-02-26 11:32) [1]

Где можно найти какие-нибудь примеры работы с оверлееями на Делфи?

Вообще у меня есть... но лучше не проси выслать, а потыкай местное начальство, чтоб выложили - я им почти три месяца назад отправлял статью с примером (на конкурс), но выкладывать почему-то не хотят... ну, статья может и кривовата, но пример ИМХО вполне приличный :)

Или см. DX7 SDK (в плане теории, примеров на Delphi там нет, разумеется :))


 
Digitman ©   (2004-02-26 11:33) [2]

тебе оно зачем вообще ?

меньше знаешь - лучше спишь)

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


 
Sapersky ©   (2004-02-26 12:19) [3]

2Digitman:
Оверлеи в данном случае - аппаратная фича видеокарты, позволяющая накладывать изображения "поверх" первичной поверхности (экрана) без изменения содержания поверхности (т.е. без копирования видеопамяти - наложение делается в ЦАП видеокарты).


 
Opilki_Inside ©   (2004-02-26 19:38) [4]

> тебе оно зачем вообще ?

Есть такая программа, называется Dremples Desktop.
Программа формирует всевозможные интересные образы на рабочем столе работая как бы в фоновом режиме... Т.е. все иконки и окна, которые находятся на рабочем столе она не трогает, а рисует как бы на обоях раб. стола... Как это реализовано???
Я не могу понять она сделана на уровне виндовских API или с помощью DirectX

если что вот ссылка на программу...
http://www.geisswerks.com/drempels/index.html

Я подобный вопрос задал еще на фороме про API, они мне совсем о другом говорят:)
Надо же найти истину все таки!


 
Opilki_Inside ©   (2004-02-26 19:49) [5]

> потыкай местное начальство, чтоб выложили

А-а-а!! Начальство! Выложите пожалуста его примеры! Ведь очень интересная тема и плохо освещена. Особено в Делфи!

...и кривую статью выложить можно... её все равно мало кто читать будет, т.к. пример к ней будет:)


 
Digitman ©   (2004-02-27 10:01) [6]


> Sapersky ©   (26.02.04 12:19) [3]
> Оверлеи в данном случае - аппаратная фича видеокарты


увы, из вопроса было совершенно неочевидно, что речь в дан.случае идет именно об этом

мало ли какие еще "оверлеи" бывают)


 
Opilki_Inside ©   (2004-02-27 15:26) [7]

2Sapersky:

Да ладно тебе, вышли плз примерчик..
я тебе тоже че-нить пришлю...


 
Sapersky ©   (2004-02-28 18:32) [8]

Отправил.


 
TButton ©   (2004-02-28 19:32) [9]

а можно и мне примерчик.
>мало ли какие еще "оверлеи" бывают)
оверлей он и в Африке оверлей.


 
cyborg ©   (2004-02-29 09:18) [10]

[9] TButton ©   (28.02.04 19:32)
Оверлей ещё в турбо паскале был, насколько помню, и к графике он не относится.


 
тихий вовочка ©   (2004-02-29 20:08) [11]

В паскале оверлей относился к программе подкачеваемой с винчестера в ОЗУ кусками, в зависимости от ситуации. О чем в данный момент речь(графика?) - непонятно


 
DNS   (2004-02-29 21:22) [12]

А можно и мне примерчик ? ;)


 
Opilki_Inside ©   (2004-02-29 22:12) [13]

Естсественно речь о графике!!
Я же ссылку дал на программу, о которой идет речь.
Да и вобще этот форум посвещен вопросам мультимедии: графике и звуку!
Что вы все глупые вопросы задаете "какой оверлей"...

2Sapersky:
Спасибо за пример... я уже со всем разобрался, просто супер!
Буду свои десктопсейверы писать :))


 
Sapersky ©   (2004-03-01 18:33) [14]

Со всем - и с реестровым глюком тоже? Тогда поведай, что это было - надо же мне исправить на будущее.
Я подозреваю, что из-за использования в 2000 WideString вместо обычных, или просто прав не было на доступ к ключу.
Если же просто закомментировать строчку - так не годится, картинка не будет восстанавливаться.


 
panov ©   (2004-03-01 22:42) [15]

>Sapersky ©   (01.03.04 18:33) [14]
Не надо всем высылать, лучше в кладовку выложить.


 
Opilki_Inside ©   (2004-03-02 03:01) [16]

2Sapersky:

я попробывал на работе запустить... там другие глюки... хотя тоже windows2000.. но проблема опять же с реестром.. простое закоментирование там уже не помогает... :(


 
VMcL ©   (2004-03-02 07:48) [17]

>>Opilki_Inside ©  (29.02.04 22:12) [13]
>Естсественно речь о графике!!
>Я же ссылку дал на программу, о которой идет речь.
>Да и вобще этот форум посвещен вопросам мультимедии: графике и звуку!
>Что вы все глупые вопросы задаете "какой оверлей"...

Хе! Тут недавно один тип про составление списка процессов в конф-ции "Игры" спрашивал ))

>Я же ссылку дал на программу, о которой идет речь.
Делать всем нечего какие-то "левые" программы качать. Без обид.


 
Sapersky ©   (2004-03-04 11:46) [18]

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

Конкретно - что? Если нет доступа к ключу - тут вряд ли чем-то можно помочь. Хотя если кто-нибудь подскажет средство получить имя картинки на десктопе, убрать её и потом снова поставить без залезания в реестр и системные файлы... Есть вроде shellexecute, но через него название существующей картинки не узнать, только установить можно, да?

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

Делать всем нечего какие-то "левые" программы качать.

WinAmp не левая программа? Ну так см. плагин AVS, в разделе display вроде, overlay mode и set desktop to color...


 
Opilki_Inside ©   (2004-03-04 17:40) [19]

В функции ReadRegistryString размер поставил побольше на ед., ошибка не вылетает SetString(Result, nil, Size);

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

Пробывал программно обновлять десктоп:
SendMessage(FindWindow("Progman", "Program Manager"),       WM_COMMAND,$A065,0);

и так:

InvalidateRect(0,0,true);
UpdateWindow(GetDesktopWindow());

но ниче не получилось :(

В ХР проверил - все работает без глюков.


 
Sapersky ©   (2004-03-05 11:59) [20]

Вообще-то десктоп обновляется (должен обновляться) командой   SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE);

Попробуй в качестве последнего параметра поставить
SPIF_UPDATEINIFILE (есть ещё SPIF_SENDCHANGE, но он определён равным SPIF_SENDWININICHANGE).

Вообще, данная функция рассылает всем окнам сообщение об обновлении параметров. Можно попробовать отправлять вручную (всем окнам в данном случае необязательно, достаточно десктопу):

SendMessage(GetDesktopWindow, WM_SETTINGCHANGE, 0, 0); // или PostMessage
UpdateWindow(GetDesktopWindow);

Что ещё... в качестве пустой картинки можно попробовать не пустую строку, а "(None)", например (может, если пустая, он не реагирует). Это в TDXOverlay.SetOverlayCKey:

If Draw2Desktop<>FDraw2Desktop then begin
 If Draw2Desktop then begin
   FDsColor:=DsTempColor; FDsWallPaper:="(None)"; // <-
<...>


 
Guest ©   (2004-03-11 11:37) [21]

Удалено модератором


 
Sapersky ©   (2004-04-09 18:58) [22]

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

Лучше поздно, чем сами знаете чего :)



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

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

Наверх




Память: 0.5 MB
Время: 0.033 c
1-1086913022
antonn
2004-06-11 04:17
2004.06.27
Не выключается комп


1-1087275595
try
2004-06-15 08:59
2004.06.27
Извлечение имени папки диска


14-1086811730
Infeligo
2004-06-10 00:08
2004.06.27
Какой софт использовать для зелёного экрана?


3-1086090911
rvs
2004-06-01 15:55
2004.06.27
Проблема с запросом


14-1086590308
Мазут Береговой
2004-06-07 10:38
2004.06.27
Хотелось бы знать ваше мнение, по одному неприятному





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