|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
TPaintBox и очистка/затирание фона
Здравствуйте!
В компонент PaintBox выводится некая картинка. При просто выводе и при наступлении события OnPaint всё хорошо отрабатывает. Проблема с изменением размера. При изменении размера компонента сначала фон очищается весь и только потом наступает событие OnPaint. Поставил цвет clNone, всё равно фон очищается. Так, как мне надо работает сама форма, но надо бы отображать данные не на всю форму, поэтому был выбран PaintBox. Как сделать так, чтобы при изменении размера PaintBox фон не очищался? |
#2
|
|||
|
|||
Пока нашёл следующее решение:
На место, где должен быть PaintBox поставить Panel, на него посадить PaintBox. У Panel установить свойство FullRepaint:=false и BevelOuter:=bvNone, у PaintBox установить свойство Visible:=false; При изменении размера панели вручную устанавливать размер PaintBox, как у панели. Ограничения и недостатки метода: - Выводить информацию нужно API функциями, используя PaintBox1.Canvas.Handle. - Нет события OnPaint, поэтому подходит в основном для часто обновляющихся данных. Так же, обновление при изменении размера и использование aero тем в windows решает вопрос о затирании картинки. |