![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как перерисовать картинку? [D7, Win95/98, Win2k, WinXP]
Святослав © (2006-02-15 14:30:00)Пишу свой компонент, потомок от TpaintBox, рисую на канве, все хорошо только изображение не обновляться если свернуть/развернуть форму!
Как с этим бороться?
zep (2006-02-20 21:02:00) [1]весте с изменением image
Image1.w:=88;
Image1.h:=77;
присваевай и
Image1.Picture.Bitmap.w:=88;
Image1.Picture.Bitmap.h:=77;
но ты Image выбрал зря он моргает как зараза и нечего ты с ним не сделаеш
надобыло хотябы от PaintBox аследовать а рисовать в событии OnPaint на вертуальной битмапки а патом уже на канву выкидывать Draw.
MBo (2006-02-16 16:57:00) [2]Изменяй размеры Picture.Bitmap
Святослав (2006-02-16 16:53:00) [3]Всем спасибо, заработало :)))
Но теперь новый глюк, если TImage предок то изменение размеров картинки не вступают в силу!!! В дизайне растягивал как мне надо но в ране значение свойств высоты и ширины остались стартовыми!!!
zep (2006-02-16 00:11:00) [4]папробуй взять предка кастум панель и в Ppotected переопредели процедуру Paint типа так
procedure Pain; override;
а дальше в программе рисуй в ней что хочешь
procedure My_comp.Paint;
begin
//
end;
если будет сильно моргать рисуй сначала на canvas у TBitmap а в конце копируй на канву компаненты
MBo (2006-02-15 19:03:00) [5]>в OnPaint только можно нарисовать
Так для этого PaintBox и предназначен - легковесный компонент без сохранения картинки, просто выделенное для рисования место.
TImage сохраняет картинку
Святослав (2006-02-15 18:19:00) [6]
> рисовать нужно в обработчике OnPaint
Пробовал, болт! Все намного хуже, в OnPaint только можно нарисовать, старые рисунок не сохраняет если тот и рисовался в OnPaint, а если рисунок результат работы проги? Надо рисовать либо на двух canvas либо по выходу фокуса с рисунка сохранять BitMap
Может стоит предка поменять?
MBo (2006-02-15 16:59:00) [7]Пардон, не обратил внимания сразу, что потомок PaintBox. PaintBox сам не перерисовывается, картинку не сохраняет, рисовать нужно в обработчике OnPaint
MBo (2006-02-15 16:56:00) [8]возможно, напутал с перекрытием метода Paint. Приведи объявление класса и реализацию этого метода