Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Оверлеи


Страницы:   1 2

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


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо