Конференция "KOL" » Как в перемен. типа PGif загрузить из перемен. типа TStringStream
 
  • Vinum (07.12.07 22:11) [0]
    Чтоб потом эта PGIF анимировалась
    Помогите кто чем может :)
  • Dimaxx © (08.12.07 16:04) [1]
    Причем здесь StringStream и GIF??
  • Vinum (08.12.07 18:32) [2]
    В общем дело так: смысл программы, к-ю я пишу, в том, что из ZIP архива, в котором находятся GIF файлы, при помощи либы SciZipFile by Patrik Spanel я эти самые файлы хочу "извлекать" и при помощи KOLGIF анимировать. На сайте по KOL нашел пример с использованием KOLGIF, в SciZipFile тоже был пример, но там был пример с отображением из архива простых BMP. Я попытался сделать аналогичное, но когда в архиве были GIF файлы, и вот возникла заморочка, прилагаю кусок кода из примера SciZipFile:

    var
     StrStream : TStringStream ;
     ABitmap   : TBitmap ;

    ...
    { Convert string to stream }
     StrStream := TStringStream.Create(ZipFileMem.Data[ListBox1.ItemIndex]) ;
    .....
     { Assign bitmap }
     ABitmap := TBitmap.Create ;
     ABitmap.LoadFromStream (StrStream) ;



    и все прекрасно работает :)
    Вопрос тогда по-другому задам: как мне получив StrStream GIF файла прокрутить его при помощи KOLGIF
  • ANTPro © (08.12.07 19:04) [3]
    > [2] Vinum   (08.12.07 18:32)

    В VCL есть свой PGif
  • Vinum (08.12.07 19:34) [4]
    > ANTPro  (08.12.07 19:04)

    Какой? Где? в D6 он есть?
    сорри за такой тупой вопрос :)
  • Дмитрий К © (08.12.07 22:23) [5]
    В вкл гифа нет.
    По сабжу:
    unit Unit1;
    ...
    implementation
    {$R *.dfm}
    uses KOL, KOLGif;

    var
     GifShow: PGifShow;
     KolForm: PControl;
     KolStream: PStream;

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     KolStream := NewMemoryStream;
     KolStream.Write(Pointer(StrStream.DataString)^, Length(StrStream.DataString));
     KolForm := NewForm(nil,'');
     KolForm.HasBorder := False;
     GifShow := NewGifShow(KolForm);
     KolStream.Position := 0;
     GifShow.LoadFromStream(KolStream);
     GifShow.ResizeParent;
     Windows.SetParent(KolForm.Handle, Self.Handle);
     KolForm.Show;
     KolStream.Free;
     (Sender as TButton).Enabled := False;
    end;

    procedure TForm1.Button2Click(Sender: TObject);
    begin
     KolForm.Free;
     Button1.Enabled := True;
    end;

    end.

  • ANTPro © (08.12.07 23:40) [6]
    > [5] Дмитрий К ©   (08.12.07 22:23)
    > В вкл гифа нет.

    В JVCL много чего есть.


    > [5] Дмитрий К ©   (08.12.07 22:23)
    > KolStream: PStream;

    Интересно что будет если PStream заменить на TStringStream :)
  • Дмитрий К © (08.12.07 23:56) [7]

    > В JVCL много чего есть.

    JVCL не входит в "стандартную комплектацию".
    Правда в Delphi 2007 gif есть.


    > Интересно что будет если PStream заменить на TStringStream :)

    Это риторический вопрос?
  • ANTPro © (09.12.07 00:17) [8]
    > [7] Дмитрий К ©   (08.12.07 23:56)
    > JVCL не входит в «стандартную комплектацию».

    KOL тоже :)


    > [7] Дмитрий К ©   (08.12.07 23:56)
    > Это риторический вопрос?

    Это не вопрос :o)
  • Дмитрий К © (09.12.07 00:19) [9]
    Сдаюсь :)
 
Конференция "KOL" » Как в перемен. типа PGif загрузить из перемен. типа TStringStream
Есть новые Нет новых   [134431   +10][b:0][p:0.001]