Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TShockwaveFlash. Как записать в поток? [D6, XP]


Артем ©   (2008-01-08 05:17:00) 

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

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


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


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

1


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

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


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

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

КОД:

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-08 20:42:00) [4]

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


fics   (2008-01-08 20:26:00) [5]


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


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

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


fics   (2008-01-08 19:54:00) [7]


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

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


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

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


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

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


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

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

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. Где ошибка?


Наверх

Титульная страница Поиск, карта сайта Написать письмо