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