Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.10;
Скачать: CL | DM;

Вниз

TShockwaveFlash. Как записать в поток?   Найти похожие ветки 

 
Артем   (2008-01-08 05:17) [0]

Господа, не могу разобраться как записать в поток объект TShockwaveFlash???

var
OS:TOleStream;
Strm:IStream;
begin
OS:=TOleStream.Create(Strm);
  flash1.Movie.savetostream(OS);
end;


Не хочет :( Что не так делаю?


 
Артем   (2008-01-08 06:14) [1]

Нет, это ерунда то, что пытался выше. Вот пробую:

procedure TForm1.Button2Click(Sender: TObject);
var
Stg:IStorage;
OS:TOleStream;
Strm:IStream;
swf:TFileStream;
s:string;
SwfFileSize: Integer;
begin
s:="d:\test.swf";
swf:= TFileStream.Create(S, fmOpenRead or fmShareExclusive);
SwfFileSize:=swf.Size;

OleCheck(StgCreateDocfile("d:\Testing.stg",STGM_CREATE or STGM_READWRITE or STGM_SHARE_EXCLUSIVE ,0,Stg));

OleCheck(Stg.CreateStream("Testing",STGM_READWRITE or STGM_SHARE_EXCLUSIVE,0,0,Strm));

OS:=TOleStream.Create(Strm);
os.writebuffer(swf,SwfFileSize);

OS.free;
Strm:=nil;
Stg:=nil;
swf.Free;

end;


Задача такая: записать SWF-файл в хранилище IStorage. Где ошибка?


 
Артем   (2008-01-08 06:20) [2]

Выдает ошибку "не верный указатель". А потом, что не может открыть "d:\test.swf". Размер этого файла 19 метров...


 
Артем   (2008-01-08 19:42) [3]

Коллеги, не могу справиться, нужна помощь. Где ошибка во втором листинге?


 
fics ©   (2008-01-08 19:54) [4]


> Артем  
> Выдает ошибку "не верный указатель". А потом, что не может
> открыть "d:\test.swf". Размер этого файла 19 метров...

Слеш наоборот поставь


 
Артем   (2008-01-08 20:11) [5]

Зачем наоборот-то? :) Вроде правильно.
В любом случае не помогает.


 
fics ©   (2008-01-08 20:26) [6]


> Артем
Да тупанул, показалось что не правильно.


 
Артем   (2008-01-08 20:42) [7]

Сутки мучаюсь - никак не могу победить. Кто-нибудь подскажет как записать SWF-файл в хранилище типа IStorage?
Что делаю не так?


 
Артем   (2008-01-08 21:12) [8]

Пытаюсь через Memo - сначало в него содержимое SWF файла, а потом в хранилище. Ни фига не помогает. Записывается вот такая ерунда в 9 байт: "FWSуDрЂ"

КОД:

s:="d:\test.swf";
swf:= TFileStream.Create(s, fmOpenRead);
memo3.lines.LoadFromStream(swf);
swf.free;

OleCheck(StgCreateDocfile("d:\Testing.stg",STGM_CREATE or STGM_READWRITE or STGM_SHARE_EXCLUSIVE ,0,Stg));

OleCheck(Stg.CreateStream("SWF",STGM_READWRITE or STGM_SHARE_EXCLUSIVE,0,0,Strm));

OS:=TOleStream.Create(Strm);
memo3.lines.SaveTOStream(OS);

OS.free;
Strm:=nil;
Stg:=nil;
end;


 
Артем   (2008-01-09 00:16) [9]

Проблему решил. Топик закрыт.


 
Serg1984   (2008-01-21 03:38) [10]

1



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

Текущий архив: 2008.02.10;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
2-1200571334
_Shuler_
2008-01-17 15:02
2008.02.10
Winrar&Delphi


2-1200655366
Black_Tomcat
2008-01-18 14:22
2008.02.10
Переделка ListView.


2-1198758279
Helen
2007-12-27 15:24
2008.02.10
BDE Error 8453


1-1194007320
try
2007-11-02 15:42
2008.02.10
Lotus Domino


2-1200472132
_Shuler_
2008-01-16 11:28
2008.02.10
keyboardlayout