Форум: "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