Canva на TImage и TForm
От: bipka  
Дата: 14.05.03 16:28
Оценка:
помогите с ламерской проблемой.
юзер должен рисовать мышкой на канве тформы.
если по нарисованному повозить окном, то нарисованное стирается. refresh не помогает. в timage такого бардака нет, но надо на tform.
ну не хранить же все нарисованное в отдельном массиве и не перерисовывать каждый раз...
Re: Canva на TImage и TForm
От: _MarlboroMan_ Россия  
Дата: 14.05.03 17:46
Оценка:
Здравствуйте, bipka, Вы писали:

B>помогите с ламерской проблемой.

B>юзер должен рисовать мышкой на канве тформы.
B>если по нарисованному повозить окном, то нарисованное стирается. refresh не помогает. в timage такого бардака нет, но надо на tform.
B>ну не хранить же все нарисованное в отдельном массиве и не перерисовывать каждый раз...

а почему бы не положить TImage размером во всю форму???
... << RSDN@Home 1.0 beta 6a silent>>

— сколько программистов надо чтобы заменить сгоревшую лампочку?
— сколько не бери, а лампочку не поменять — проблема аппаратная, программным путем не решается...
Re[2]: Canva на TImage и TForm
От: bipka  
Дата: 14.05.03 18:12
Оценка:
Здравствуйте, _MarlboroMan_, Вы писали:

_MM_>а почему бы не положить TImage размером во всю форму???


в TImage свои проблемы. когда он большой, он дико моргает, когда на нем рисуешь
Re: Canva на TImage и TForm
От: temofey  
Дата: 15.05.03 09:47
Оценка:
Здравствуйте, bipka, Вы писали:

B>помогите с ламерской проблемой.

B>юзер должен рисовать мышкой на канве тформы.
B>если по нарисованному повозить окном, то нарисованное стирается. refresh не помогает. в timage такого бардака нет, но надо на tform.
B>ну не хранить же все нарисованное в отдельном массиве и не перерисовывать каждый раз...

использовать TBitmap и "перерисовывать каждый раз"
Re: Canva на TImage и TForm
От: Аноним  
Дата: 16.05.03 05:37
Оценка: 1 (1)
Здравствуйте, bipka, Вы писали:

B>помогите с ламерской проблемой.

B>юзер должен рисовать мышкой на канве тформы.
B>если по нарисованному повозить окном, то нарисованное стирается. refresh не помогает. в timage такого бардака нет, но надо на tform.
B>ну не хранить же все нарисованное в отдельном массиве и не перерисовывать каждый раз...

ага. перерисовывать.
double buffering называется.
выводить битмап на экран функцией BitBlt. А еще можно отслеживать изменяемый участок картинки
Re: Canva на TImage и TForm
От: SVG Беларусь  
Дата: 16.05.03 09:16
Оценка:
Ну блин и насоветовали... Конечно если быстро и коряво то можно хранить битмап формы и в Paint заливать его на форму, а лучше только стёртую часть.

B>если по нарисованному повозить окном, то нарисованное стирается. refresh не помогает.

Естественно! Ведь инфа о нарисованном нигде не сохраняется окно выполняет свою стандартную отрисовку и всё.
B>ну не хранить же все нарисованное в отдельном массиве и не перерисовывать каждый раз...
Именно! Это и есть самый грамотный вариант, тем более что в Винде всё для этого есть. Почитай в Win'32 Programmers Reference или ещё где про метафайлы (Metafiles). Короче если коротко то инфа по рисованию записывается в метафайл, а потом когда нужно (OnPaint) проигрывается на канве формы. Причём при желании нарисованное можно редактировать, откатывать изменения копировать и сохранять в файл, а также инфа записанная в метафайлах является аппаратно-независимой, т.е. можно выводить там на принтер или ещё куда.
Re: Canva на TImage и TForm
От: Demiurg  
Дата: 17.05.03 12:19
Оценка:
Здравствуйте, bipka, Вы писали:

B>помогите с ламерской проблемой.

B>юзер должен рисовать мышкой на канве тформы.
B>если по нарисованному повозить окном, то нарисованное стирается. refresh не помогает.

Естественно! С чего это нарисованное должно храниться?

B> в timage такого бардака нет, но надо на tform.


Какая разница где? Положи timage на форму и всего делов, правильно тебе советовали, но если тебе не нравится как она моргает, то положи на форму TPaintBox и рисуй в нем, только все равно придется TBitmap заводить, чтоб нарисованное там хранить.

B>ну не хранить же все нарисованное в отдельном массиве и не перерисовывать каждый раз...


Зачем в массиве? В TBitmap. Только перерисовывать нужно только только стертые области по событию OnPaint в пайнтбоксе. И быстрее всего использовать BitBlt.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.