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

Вниз

TAnimate в Windows 7   Найти похожие ветки 

 
harisma ©   (2011-03-30 18:31) [0]

Здравствуйте. Такая проблема. Использую в проекте компоненту TAnimate. Пишу все еще на Д5 (в силу особенностей программы и недостатка знаний для перевода некоторых ее частей на более высокие версии). Так вот, пока работал на WinXP - в этом компоненте при установке CommonAvi = aviCopyFiles и Active = True все отображалось (листики в компоненте летали). Но поставили Win 7 - и никакое встроенное видео в этом компоненте не отображается. Как быть?
В сети и на сайте Эмбаркадеро нашел решение, что надо к проекту подключить модуль ShellAnimations.pas, но это не помогло (хотя я и этот модуль и ресурсные файлы от D2010 к себе перетащил и куда требуется положил). Какие еще будут предложения?


 
clickmaker ©   (2011-03-30 18:40) [1]

> надо к проекту подключить модуль ShellAnimations.pas

а что в этом модуле? Замена стандартного TAnimate?


 
harisma ©   (2011-03-30 19:36) [2]

Нет. Там компонента, порожденная от TComponent, но не имеющая ничего нового по сравнению с ним. Только в том модуле подгружаются ресурсные файлы этих общевиндовых авишек.
Собственно вот его исходник:

unit ShellAnimations;
{$WEAKPACKAGEUNIT ON}
interface

uses
 SysUtils, Classes;

{$R FindFolder.res }
{$R FindFile.res }
{$R FindComputer.res }
{$R CopyFiles.res }
{$R CopyFile.res }
{$R RecycleFile.res }
{$R EmptyRecycle.res }
{$R DeleteFile.res }

type
 TShellResources = class(TComponent)
 end;
 
implementation

end.


 
harisma ©   (2011-03-30 19:53) [3]

Еще одно замечание. Форма, на которой используется этот компонент, вшита в dll.


 
clickmaker ©   (2011-03-30 23:28) [4]

так может их цеплять надо через ResName или


 
clickmaker ©   (2011-03-30 23:40) [5]

или у них ResID совпадает со стандартными виндозными, и он их сам должен подцепить?
Короче, надо в отладчике смотреть с use debug dcu, чем заканчивается вызов в comctrls.pas
Result := Perform(ACM_OPEN, GetActualResHandle, GetActualResId) <> 0;


 
clickmaker ©   (2011-03-31 00:11) [6]

и еще
if FCommonAVI <> aviNone then Result := GetShellModule

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


 
Anatoly Podgoretsky ©   (2011-03-31 08:54) [7]


> хотя я и этот модуль и ресурсные файлы от D2010 к себе

А ничего, что 2010 ориентирован на Юникод, а Д5 нет и ужасно устарел.


 
harisma ©   (2011-03-31 11:29) [8]


> и еще
> if FCommonAVI <> aviNone then Result := GetShellModule
>
> то есть, если грузим свои ресурсы, то и ResHandle должен
> быть того модуля, к которому прилинкованы эти .res

А можно вот это поподробнее?


 
harisma ©   (2011-03-31 11:44) [9]

Собственно я нашел другой способ получить то, что мне надо. А именно:
-создал 2 ресурсных файла в каждом из которых находится нужный мне видеоклипик (выкушеный из виндовой Длл Shell32.dll от ВинХР)
-подгружаю эти 2 файла в проект.
- прописываю в коде проекта следующий код:

implementation

{$R *.DFM}
{$R Apply.res}
{$R Cancel.res}

procedure TForm1.Button1Click(Sender: TObject);
begin
 Animate1.ResName := "Apply";
 Animate1.Active := True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Animate1.ResName := "Cancel";
 Animate1.Active := True;
end;

- и тут все бы хорошо, но мне эту конструкцию надо использовать не в экзешнике, а в ДЛЛ, причем эта ДЛЛ обязательно с установленной галочкой "Build with runtime packages". Но именно в таком варианте при присвоении
Animate1.ResName := "Apply"; ругается на "Cannot open AVI".
Причем если эту галочку снять, то все будет работать.
Как мне добиться работы ДЛЛ и с установленой этой галочкой?


 
clickmaker ©   (2011-03-31 11:52) [10]

Animate1.ResHandle := HInstance?


 
harisma ©   (2011-03-31 12:00) [11]


> Animate1.ResHandle := HInstance?

Не понял.


 
Anatoly Podgoretsky ©   (2011-03-31 12:29) [12]

> harisma  (31.03.2011 11:44:09)  [9]

У ДЛЛ такой галочки нет, оно не имеет отношения к пакетам


 
harisma ©   (2011-03-31 12:40) [13]

Не правда. Есть такая галочка. И мы ее используем.



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

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

Наверх





Память: 0.47 MB
Время: 0.003 c
15-1300947070
OW
2011-03-24 09:11
2011.07.10
Как бы Вы написали и почему?


15-1300719280
mahab-22
2011-03-21 17:54
2011.07.10
работа с dbexpress


1-1258698892
STD
2009-11-20 09:34
2011.07.10
WebBrowser, обработка скрипта


2-1301495507
harisma
2011-03-30 18:31
2011.07.10
TAnimate в Windows 7


2-1301471734
Matveih1
2011-03-30 11:55
2011.07.10
PopupMenu и свой компонент





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