-
Добрый день! У меня вопрос следующий: как организовать бегущую строку из paintbox-а (с использованием bitblt, если есть другие варианты, можно рассмотреть)? Постановка задачи такая: имеется набор картинок (размером в среднем 25х25 пикселов), они выстраиваются в ряд (строку) на paintbox-е. Теперь как сделать чтобы они двигались справа налево (образовывая тем самым бегущую строку)
-
А в чем проблема? По таймеру выводи, смещая влево на 1 пиксель. BitBlt подойдет.
-
А есть какой-нибудь более быстрый способ очитски paintbox-а, чем refresh или repaint???
-
PatBlt ?
-
еще вопрос созрел... я в paintbox рисую различные картинки из timage (куда они загружаются предварительно). а как теперь из paintbox-а в другой timage записать все эти картинки целиком. Следующий отрезок кода, мне не помог... или я может что неправильно сделал?
bitblt(y.Picture.Bitmap.Canvas.Handle, 0,0,
paintbox1.Width, paintbox1.Height,
paintbox1.Canvas.Handle, 0,0,
srccopy);
-
Натрави свою функцию рисования на Image, как на PaintBox. С PaintBox лучше ничего не копировать, т.к. он влюбой момент может затереться.
-
> [2] kiligin © (04.11.09 12:26)
Что ты понимаешь под очисткой? Refresh вызывает Repaint, если я не ошибаюсь, плюс отрисовку того, что под ним, а Repaint вызывает Paint. Смотри исходники VCL.
-
> [4] kiligin © (04.11.09 12:38)
Еще вариант - сначала всё рисовать на bitmap, потом копировать на PaintBox, на Image и куда еще захочешь.
-
bitmap это отдельный компонент? что-то никак не могу его найти... подскажите!
-
Bitmap - это экземпляр класса TBitmap - растровое изображение вв памяти.
Например есть поле Bmp: TBitmap, в OnCreate формы пишем begin Bmp := TBitmap.Create; Bmp.LoadFromFile('img.bmp'); end;
Потом в PaintBox1OnPaint пишем что-нибудь вроде PaintBox1.Canvas.Draw(0, 0, Bmp); и на PaintBox будет выводиться всегда этот Bitmap.
Советую почитать литературу и справку.
-
У TBitmap есть своя канва, на которой можно рисовать в памяти, а потом Bitmap выводить куда-нибудь на экран.
-
а tbitmap поддерживает рисование за пределами видимости? задаю такой вопрос, потому возникает ситуация, когда размер области рисования порой может быть меньше чем количество рисунков выведенных на эту область.
-
> kiligin © (05.11.09 10:57) [11] > > а tbitmap поддерживает рисование
Может все таки попробуешь F1 TBitmap ?
|