-
> Мне кажется что вам не нравится паинт из-за того, что вы > пытаетесь в него слишком много запихнуть (типа вычисления > точек графика), в то время как он должен заниматься только > прорисовкой без всяких оверворков.
Ок! Тогда надо иметь буфер, в котором будут храниться точки графика, нужно будет по каждому OnPaint их оттуда запрашивать и прорисовывать на канве. Если изображение довольно сложное, то для ускорения процесса придется еще контролировать, какие именно области прорисовывать надо, а какие-нет и т.п. Так TBitmap и есть буфер, а TImage - его оболочка, которая все сама за Вас сделает.
-
> Тогда надо иметь буфер, в котором будут храниться точки > графика
Ну да, естественно такой буфер нужен. Но это нормально, массив промежуточных данных. А вот битмап данными назвать сложно. Если вашему юзеру вдруг захочется посмотреть фрагмент графика, который "уплыл" минуту назад, откуда вы в битмапе возмете недостающие точки? А вот с массивом промежуточных данных - запросто.
-
> Курдль © (04.04.06 12:38) [20]
Эта, не надо путать теплое с мягким. Есть вычисления того, что надо отрисовать и есть отрисовка. Надо просто понимать разницу, о чем и говорят товарисчи. Не надо вычислять сложый график в OnPaint. Если Вы это делаете - это Ваши личные проблемы и недочитанность документации. Сорри за эмоции.
Если Вам для хранения того, что нужно отрисовывать (то, что уже насчитано) удобно использовать Bitmap - это замечательно. Действительно, совершенно необязательно изобратать велосипеды с каким-то буфером, если есть готовый и вполне подходящий.
Но не надо говорить, что не надо перекрывать OnPaint там, где это надо: отрисовывать имеющиеся данные. К стати, как интересно по-вашему сделана отрисовка того-же TImage? На resize? :)
И вот еще: как показали печальные опыты, когда нужно отрисовать множество мелких примитивов - то не получается пользоваться множеством всяких TShape, даже если их изобразительных средств достаточно. Тут уже надо делать какой-то буфер для данных и отрисовывать эти данные в OnPaint.
PS Просто имеем дело со случаем, когда человек обжегся, но сделал не правильные, увы, выводы. Не страшно. Надеюсь, он поймет действительные причины возникшей проблемы и переосмыслит свое отношение к ней :)
-
> PS > Просто имеем дело со случаем, когда человек обжегся, но > сделал не правильные, увы, выводы. Не страшно. Надеюсь, > он поймет действительные причины возникшей проблемы и переосмыслит > свое отношение к ней :)
Вот слова настоящего многоопытного снисходительного Гуру! :) Я приводил примеры своих работ над графикой (Курдль © (04.04.06 09:56) [12]). Хотя графика и не является моим профилем. То, что от меня требовалось - я делал. Графика работала, не глючила и не тормозила. Ни разу OnPaint мне не понадобился.
-
-
> Попробуйте лучше написать аналог Label с WordWrap=true и > TextAlign=MiddleCenter.
А еще лучше со свойством Angle ;)
|