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

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

Как сделать PaintBox?


Vinum ©   (2007-12-10 14:16:00) 

Здравствуйте, столкнулся с проблемой создания на форме PaintBoxa,
если я пишу так

var pb:tkolpaintbox; gifshow: pgifshow;
pb:=newpaintbox(kolform1);
gifshow:=newgifshow(pb);
//подгрузил GIF
....
gifshow.ResizeParent;

то ничего не происходит, (анимация должна быть),

но если пишу

var pb:tkolpaintbox; gifshow: pgifshow;
pb:=newpaintbox(kolform1);
gifshow:=newgifshow(paintbox1 {(на форме который лежит)});
//подгрузил GIF
....
gifshow.ResizeParent;

то все прекрасно, GIFка анимируется в том месте, где лежит пэйнтбокс.
Как мне сделать так, чтоб на форме эта GIFка анимировалась там где захочу?
Прошу сильно не пинать :)


Vinum   (2007-12-10 23:28:00) [1]

KOLUnzip по-моему не подходит (а мб и подойдет, я не смотрел его), потому что основная фишка scizipfile это доступ к данным архива без распаковки и создания временных файлов.

GifShow := NewGifShow(form);
GifShow.Left := 10;
GifShow.Top := 10;
GifShow.LoadFromStream(KolStream);


спасибо большое, помогло :) 2 дня мучался


Дмитрий К   (2007-12-10 23:11:00) [2]

GifShow не нужен PaintBox для отображения анимации.
 GifShow := NewGifShow(form);
 GifShow.Left := 10;
 GifShow.Top := 10;
 GifShow.LoadFromStream(KolStream);

Все.

Для распаковки Zip можно использовать KOLUnzip:
http://www.kolnmck.ru/files/components/compress/kol_unzip.7z


Vinum   (2007-12-10 22:32:00) [3]

это кол-мцк изначально был(только модули classes, scizipfile, kolgif подключить пришлось), сейчас уже четкая грань стерлась :), но все, что написано выше (код), работает, анимация выводится, но выводится только на объектах, которые были ручками брошены на форму. Если создаешь объект из под программы pb:=newpaintbox(kolform1); то в нем ничего не отображается, хотя программа запускается и вроде что-то делает. Попробую аналогичное написать на VCL, может что и получится, но мне важен размер программы..хотя, scizipfile добавляет в ехешку 100кб :)


Дмитрий К   (2007-12-10 16:57:00) [4]

Это уже kol/mck или все еще vcl?


Vinum   (2007-12-10 16:48:00) [5]

пробовал, не получается :(
что я не так делаю?

kolstream:=newmemorystream;
StrStream := TStringStream.Create(ZipFileMem.data[2]) ;
KolStream.Write(Pointer(StrStream.DataString)^,Length(StrStream.DataString));
Kolstream.Position:=0;
pb:=newpaintbox(kolform1);

gifshow:=newgifshow(pb);
Gifshow.LoadFromStream(kolstream);
gifshow.Left:=30; gifshow.Top:=30;
//Windows.SetParent(pb.canvas.Handle,pb.canvas.Handle);
gifshow.ResizeParent;


Дмитрий К   (2007-12-10 16:23:00) [6]

GifShow - сам PaintBox.
GifShow.Left
GifShow.Top


Наверх

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