![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Оверлеи
Opilki_Inside © (2004-02-25 22:56:00)Всем привет!
Где можно найти какие-нибудь примеры работы с оверлееями на Делфи?
Пробывал через яндекс искать, ничего дельного так и не нашел... тока один пример на vс++ :(
И вобще, что такое оверлеи?? а то я похоже запутался...
Sapersky (2004-04-09 18:58:00) [1]Статья и пример выложены, ошибки в примере, о которых говорилось здесь, исправлены.
Лучше поздно, чем сами знаете чего :)
Guest (2004-03-11 11:37:00) [2]Удалено модератором
Sapersky (2004-03-05 11:59:00) [3]Вообще-то десктоп обновляется (должен обновляться) командой 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)'; // <-
<...>
Opilki_Inside (2004-03-04 17:40:00) [4]В функции ReadRegistryString размер поставил побольше на ед., ошибка не вылетает SetString(Result, nil, Size);
Но всё равно, когда запускается программа, анимация появляется только на подписях к иконкам, необходимо жать правой кнопкой мыши по экрану и нажимать обновить экран, что бы работало как положено. После завершения работы тоже обновить экран, что бы обои появились.
Пробывал программно обновлять десктоп:
SendMessage(FindWindow('Progman', 'Program Manager'), WM_COMMAND,$A065,0);
и так:
InvalidateRect(0,0,true);
UpdateWindow(GetDesktopWindow());
но ниче не получилось :(
В ХР проверил - все работает без глюков.
Sapersky (2004-03-04 11:46:00) [5]попробывал на работе запустить... там другие глюки... хотя тоже windows2000.. но проблема опять же с реестром..
Конкретно - что? Если нет доступа к ключу - тут вряд ли чем-то можно помочь. Хотя если кто-нибудь подскажет средство получить имя картинки на десктопе, убрать её и потом снова поставить без залезания в реестр и системные файлы... Есть вроде shellexecute, но через него название существующей картинки не узнать, только установить можно, да?
Пример в ближайшем будущем куда-нибудь выложу (хотелось бы предварительно исправить глюки, конечно).
Делать всем нечего какие-то "левые" программы качать.
WinAmp не левая программа? Ну так см. плагин AVS, в разделе display вроде, overlay mode и set desktop to color...
VMcL (2004-03-02 07:48:00) [6]>>Opilki_Inside © (29.02.04 22:12) [13]
>Естсественно речь о графике!!
>Я же ссылку дал на программу, о которой идет речь.
>Да и вобще этот форум посвещен вопросам мультимедии: графике и звуку!
>Что вы все глупые вопросы задаете "какой оверлей"...
Хе! Тут недавно один тип про составление списка процессов в конф-ции "Игры" спрашивал ))
>Я же ссылку дал на программу, о которой идет речь.
Делать всем нечего какие-то "левые" программы качать. Без обид.
Opilki_Inside (2004-03-02 03:01:00) [7]2Sapersky:
я попробывал на работе запустить... там другие глюки... хотя тоже windows2000.. но проблема опять же с реестром.. простое закоментирование там уже не помогает... :(
panov (2004-03-01 22:42:00) [8]>Sapersky © (01.03.04 18:33) [14]
Не надо всем высылать, лучше в кладовку выложить.
Sapersky (2004-03-01 18:33:00) [9]Со всем - и с реестровым глюком тоже? Тогда поведай, что это было - надо же мне исправить на будущее.
Я подозреваю, что из-за использования в 2000 WideString вместо обычных, или просто прав не было на доступ к ключу.
Если же просто закомментировать строчку - так не годится, картинка не будет восстанавливаться.
Opilki_Inside (2004-02-29 22:12:00) [10]Естсественно речь о графике!!
Я же ссылку дал на программу, о которой идет речь.
Да и вобще этот форум посвещен вопросам мультимедии: графике и звуку!
Что вы все глупые вопросы задаете "какой оверлей"...
2Sapersky:
Спасибо за пример... я уже со всем разобрался, просто супер!
Буду свои десктопсейверы писать :))
DNS (2004-02-29 21:22:00) [11]А можно и мне примерчик ? ;)
тихий вовочка (2004-02-29 20:08:00) [12]В паскале оверлей относился к программе подкачеваемой с винчестера в ОЗУ кусками, в зависимости от ситуации. О чем в данный момент речь(графика?) - непонятно
cyborg (2004-02-29 09:18:00) [13][9] TButton © (28.02.04 19:32)
Оверлей ещё в турбо паскале был, насколько помню, и к графике он не относится.
TButton (2004-02-28 19:32:00) [14]а можно и мне примерчик.
>мало ли какие еще "оверлеи" бывают)
оверлей он и в Африке оверлей.
Sapersky (2004-02-28 18:32:00) [15]Отправил.
Opilki_Inside (2004-02-27 15:26:00) [16]2Sapersky:
Да ладно тебе, вышли плз примерчик..
я тебе тоже че-нить пришлю...
Digitman (2004-02-27 10:01:00) [17]
> Sapersky © (26.02.04 12:19) [3]
> Оверлеи в данном случае - аппаратная фича видеокарты
увы, из вопроса было совершенно неочевидно, что речь в дан.случае идет именно об этом
мало ли какие еще "оверлеи" бывают)
Opilki_Inside (2004-02-26 19:49:00) [18]> потыкай местное начальство, чтоб выложили
А-а-а!! Начальство! Выложите пожалуста его примеры! Ведь очень интересная тема и плохо освещена. Особено в Делфи!
...и кривую статью выложить можно... её все равно мало кто читать будет, т.к. пример к ней будет:)
Opilki_Inside (2004-02-26 19:38:00) [19]> тебе оно зачем вообще ?
Есть такая программа, называется Dremples Desktop.
Программа формирует всевозможные интересные образы на рабочем столе работая как бы в фоновом режиме... Т.е. все иконки и окна, которые находятся на рабочем столе она не трогает, а рисует как бы на обоях раб. стола... Как это реализовано???
Я не могу понять она сделана на уровне виндовских API или с помощью DirectX
если что вот ссылка на программу...
http://www.geisswerks.com/drempels/index.html
Я подобный вопрос задал еще на фороме про API, они мне совсем о другом говорят:)
Надо же найти истину все таки!
Sapersky (2004-02-26 12:19:00) [20]2Digitman:
Оверлеи в данном случае - аппаратная фича видеокарты, позволяющая накладывать изображения "поверх" первичной поверхности (экрана) без изменения содержания поверхности (т.е. без копирования видеопамяти - наложение делается в ЦАП видеокарты).