|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.03.2010, 10:21 | #11 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Поясняю.
Windows принципиально не хранит изображения окон. Все окна в системе заново программно отрисовываются в тот момент, когда становятся видимыми (после восстановления из минимизации, вывода из-за границ экрана, "прохода" поверх них других окон и т.д.). Для этого окна в нужный момент получают сообщение WM_PAINT, что в VCL соответствует обработчику события OnPaint. Поэтому стандартный, рекомендуемый в учебниках по графике и реализованый во множестве программ способ - всё рисование по канве использовать только внутри процедуры OnPaint с учетом того, что это изображение может потребоваться в любой момент отрисовать заново. Но в VCL существует обходной путь, позволяющий обойти эти ограничения. Если мы для рисования используем компонент TImage, то он буферизует внутри себя изменения, прорисованные по его канве, и в состоянии самостоятельно восстановить их при перерисовке. Поэтому такой способ получает всё большее распространение, хотя толком нигде не описан, а передается как "народное творчество". Теоретически существует вероятность, что создатели VCL когда-нибудь закроют такую особенность TImage, посчитав её багом.. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как установить границу абзаца | stas116ru | Microsoft Office Word | 1 | 27.01.2010 22:58 |
Как избежать повторение одного и того же номера дважды | CockPuncher | Microsoft Office Excel | 6 | 03.09.2009 09:53 |
Как в VBA определить нижнюю границу базы данных | Leanna | Microsoft Office Excel | 8 | 28.11.2008 18:45 |
Яркий пример того, как НЕ НУЖНО оформлять интерфейс | JTG | Софт | 6 | 17.10.2008 21:08 |
ошибка, после того как я создал запись 'fayl' | ZhekON | Общие вопросы Delphi | 15 | 01.04.2007 13:39 |