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

Вниз

как проиграть avi из ресурса   Найти похожие ветки 

 
Dysan ©   (2004-03-30 14:02) [0]

есть у меня ресурс с авишкой
вот так я ее достаю
 hResource: THandle;
 pData: Pointer;
hResource:=LoadResource(hInstance, FindResource(hInstance, "jrx",RT_RCDATA));
pData:=LockResource(hResource);
а что дальше? что делать с этим указателем, если хочеться чтоб авишка проигралась в TAnimate?


 
Dimka Maslov ©   (2004-03-30 14:18) [1]

Animate.ResHandle := hInstance
Animate.RedID := RT_RCDATA;
Animate.ResName := "jrx"

И ничего загружать не надо


 
Dimka Maslov ©   (2004-03-30 14:19) [2]

ResID


 
Dysan ©   (2004-03-30 14:19) [3]

спасибо


 
Dysan ©   (2004-03-30 14:29) [4]

что то однако не прокатывает :(
на первой же строчке сообщает что не может он открыть avi


 
Dimka Maslov ©   (2004-03-30 14:48) [5]

TAnimate поддреживает только неупакованные AVI без звука


 
Dysan ©   (2004-03-30 14:53) [6]

он не упакован и без звука!
проверенно вот таким способом Animate1.FileName:=GetCurrentDir+"\jrx.avi";


 
Юрий Зотов ©   (2004-03-30 15:19) [7]

1. ResID := RT_RCDATA - лучше убрать (смысл этого свойства совсем другой, это не тип ресурса).

2. ResName может быть чувствительным к регистру. Надо назначать ТОЧНО то же имя, что и в RC-файле.


 
Dysan ©   (2004-03-30 16:11) [8]

да вобщем то указанно все как в rc:
jrx RCDATA jrx.avi

но он продолжает ругаться на первой строке
Animate.ResHandle := hInstance;


 
Юрий Зотов ©   (2004-03-30 16:24) [9]

Уберите эту строку тоже. Оставьте только ResName.


 
Dysan ©   (2004-03-30 16:31) [10]

уже пробовал
не помогает :)


 
Юрий Зотов ©   (2004-03-30 16:41) [11]

1. Не может быть. Как оно может ругаться на то, что уже убрано?
2. RES-файл создан? И подключен?
3. Приведите точно и полностью сообщение об ошибке и точную строку, на которой она возникает.


 
panov ©   (2004-03-30 17:05) [12]

>Юрий Зотов ©   (30.03.04 16:41) [11]
Да думаю, что сообщение простое... У меня тоже не работает почему-то.
"Cannot open AVI."


 
Юрий Зотов ©   (2004-03-30 17:27) [13]

Включите "Use debug DCUs" и пройдите отладчиком по VCL - где конкретно застревает?


 
panov ©   (2004-03-30 17:32) [14]

Модуль TAnimate

procedure TAnimate.CheckOpen;
begin
 SetOpen(True);
 if not Open then raise Exception.CreateRes(@SCannotOpenAVI);
end;


 
panov ©   (2004-03-30 17:33) [15]

Сорри, модуль ComCtrls...


 
Юрий Зотов ©   (2004-03-30 18:10) [16]

Нужно пройти глубже - в SetOpen, InternalOpen, GetActualResHandle и GetActualResId. Очень похоже, что ошибка в действительности возникает в одном из двух последних методов. Их трассировка должна дать реальную причину.


 
Игорь Шевченко ©   (2004-03-30 18:25) [17]

Странно, все, вроде, работает...
unit main;

interface

uses
 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 ComCtrls, StdCtrls;

type
 TForm1 = class(TForm)
   Animate1: TAnimate;
   Button1: TButton;
   procedure Button1Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 end;

var
 Form1: TForm1;

implementation

{$R *.DFM}
{$R AVI.RES}

procedure TForm1.Button1Click(Sender: TObject);
begin
 Animate1.Active := true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 Animate1.ResName := "COOL1";
end;

end.

object Form1: TForm1
 Left = 205
 Top = 106
 Width = 544
 Height = 375
 Caption = "Form1"
 Color = clBtnFace
 Font.Charset = DEFAULT_CHARSET
 Font.Color = clWindowText
 Font.Height = -11
 Font.Name = "MS Sans Serif"
 Font.Style = []
 OldCreateOrder = False
 OnCreate = FormCreate
 PixelsPerInch = 96
 TextHeight = 13
 object Animate1: TAnimate
   Left = 28
   Top = 36
   Width = 60
   Height = 39
   Active = False
   StopFrame = 13
 end
 object Button1: TButton
   Left = 244
   Top = 312
   Width = 75
   Height = 25
   Caption = "Button1"
   TabOrder = 1
   OnClick = Button1Click
 end
end


avi.rc
COOL1 AVI "cool.avi"


 
Юрий Зотов ©   (2004-03-30 18:35) [18]

Тип ресурса?
AVI, а не RCDATA. Поэтому и открыть не может.


 
panov ©   (2004-03-30 18:39) [19]

>Dysan ©   (30.03.04 14:02)

Похоже, все дело в том, что ресурсы не обновляются.
попробуй убрать {$R *.res} из файла .DPR, перекомпилировать и добавить снова...


 
panov ©   (2004-03-30 18:40) [20]

>Юрий Зотов ©   (30.03.04 18:35) [18]

Тип ресурса?
AVI, а не RCDATA. Поэтому и открыть не может.

Точно!

Но у меня и после этого не заработало, пока не сделал финт ушами -
panov ©   (30.03.04 18:39) [19]


 
Dysan ©   (2004-04-01 10:46) [21]

я так понял лекарства нет
перепробовал все что было описано выше :(
вот так компайлю ресурс: jrx RCDATA jrx.avi


 
Юрий Зотов ©   (2004-04-01 10:54) [22]

> Dysan ©   (01.04.04 10:46) [21]

Елы-палы, ведь все написали уже. AVI надо ставить, а не RCDATA. И перекомпилить ресурсы. См. [17-20].


 
hellfire ©   (2004-04-14 20:18) [23]

Огромное спасибо за совет перекомпилить ресурсы.
А то я намучался порядком до того, как сюда зашёл :)


 
hellfire ©   (2004-04-15 18:53) [24]

А вот такой вопрос.
Короче, закопилил AVI-шку в *.dll
Все реусрсы перекомпилил, короче, сделал всё, как в EXE-файле(из которого,собственно, я его показывал без проблем). Написал такой код:
-----------------
h:=LoadLibrary("splash.dll");
if h=0 then
       begin messagebox(0,pchar("Ошибка загрузки splash.dll"),pchar("Файл не найден!"),mb_ok or mb_iconerror);
       exit;
       end;
Animate1.ResHandle:=h;
Animate1.ResName := "CLIP";
Animate1.Active:=true;
-------------------
Не работает. Avi not found.
Не подскажете в чём проблема ?


 
hellfire ©   (2004-04-15 19:07) [25]

Тoчнее,Cannot open Avi.
простите



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

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

Наверх




Память: 0.5 MB
Время: 0.032 c
4-1085130251
_shark_
2004-05-21 13:04
2004.07.04
Уважаемые мастера подскажите плиз, сервис грузится до входа в


6-1083773934
yakuza
2004-05-05 20:18
2004.07.04
Как обмениваться IP-пакетами на сетевом уровне, без TCP/IP и UDP?


4-1085120729
Stany
2004-05-21 10:25
2004.07.04
Сервис и очередь виндовых сообщений


14-1087046365
juiceman
2004-06-12 17:19
2004.07.04
Вопросы про локальную сеть


14-1087040031
Igorek
2004-06-12 15:33
2004.07.04
Вселенная в комнате





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