Главная страница
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.026 c
1-1194003778
GreySerg
2007-11-02 14:42
2008.02.10
Обработка выхода из ячейки в TStringGrid


15-1199810913
antonn
2008-01-08 19:48
2008.02.10
Билл Гейтс покидает Microsoft


15-1199879782
pavel_guzhanov
2008-01-09 14:56
2008.02.10
Минимизировать булеву функцию


2-1200685401
MZP
2008-01-18 22:43
2008.02.10
Обработка клика мыши


15-1200106713
sauron
2008-01-12 05:58
2008.02.10
BIOS?