![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() При изменении размера компонента TPaintBox его изображение удаляется, поэтому нужно его перерисовывать снова. При изменении размера формы её изображение не удаляется. Можно ли в TPaintBox отключить удаление изображения при изменении размера?
|
#2
|
||||
|
||||
![]() TPaintBox всего лишь предоставляет контекст для рисования, поэтому изображение на нем может "удаляться". Единственно верным вариантом его использования является рисование изображения в событии OnPaint. В отличии от него, TImage "умеет" хранить нарисованное на нем изображение в своем объекте Picture, которое в нужным момент сам перерисует. Плата за такое "удобство" - быстродействие.
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
![]() А форма не предоставляет "всего лишь контекст для рисования"? На форме, при изменении размера, изображение не удаляется и она не имеет объект Picture. Вот, что нашёл в модуле Vcl.ExtCtrls:
Код:
procedure TPaintBox.Paint; begin Canvas.Font := Font; Canvas.Brush.Color := Color; if csDesigning in ComponentState then with Canvas do begin Pen.Style := psDash; Brush.Style := bsClear; Rectangle(0, 0, Width, Height); end; if Assigned(FOnPaint) then FOnPaint(Self); end; |
#4
|
||||
|
||||
![]() Форма также не сохраняет изображение.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#5
|
||||
|
||||
![]() Цитата:
Пишу программы за еду. __________________ |
#6
|
||||
|
||||
![]() Проще сказать, Винде по фигу, что имеется на холсте. Задача программиста обновлять холст и следить за его содержанием.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#7
|
||||
|
||||
![]() angvelem,
1. в Delphi XE7, нарисованное на форме изображение, после изменения размера формы, не удаляется. 2. задача кода - не удалять изображение программиста. NumLock, изображение есть в Canvas.Pixels. |