![]() |
Модераторы: Snowy, Alexeis, MetalFan |
![]() ![]() ![]() |
|
ilya_z |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.1.2007 Где: Екатеринбург Репутация: нет Всего: нет |
При создании главной формы создаю объект для рисования:
Который содержит канву на основе объекта TForm:
Теперь для обновления вложенного окошка, по-идее, должна работать процедура:
Однако обновления не происходит. Не могу понять в чём дело. То ли я дурак, то ли лыжи не едут. Извращался по-всякому: пробовал и Invalidate+Update, и через сообщения (Drawing.DrawForm.Perform(WM_PAINT,0,0); Drawing.DrawForm.Perform(WM_ERASEBKGND,0,0);), и через API (UpdateWindow(Drawing.DrawForm.Handle);), и во всех мыслимых и немыслимых комбинациях; и обработчики событий подменял (Paint, OnPaint). Ни фига. Такое чувство, что процедура Invalidate работает не так, как надо. Если делать Hide, а потом Show, то всё обновляется, только происходит зацикливание и наблюдается весёленькое такое мерцание. Что такое это может быть? Чё ей надо, блин? На счёт мерцания при перерисовке. В моём любимом Delphi 3 свойство DoubleBuffered в объекте TForm присутствует, и при создании формы по-умолчанию устанавливается в False, а вот поменять его он не даёт (пишет, что идентификатор не описан, т.е. в классе TForm его нет). Странно как-то. Видимо, в более поздних дельфях такой проблемы нет, но ставить другую версию из-за такой мелочи я не буду. Есть такое чувство, что всё дело в библиотечке forms.dcu, и что что-то можно намутить с этим, и тогда, может быть, всё заработает. Мне бы хоть одним глазком глянуть, какой от этого будет эффект, и на сколько вырастет загрузка процессора. Думается, что раза в два. Если будет круто тормозить, то уж лучше пусть иногда мерцает, чем будет тормозить. Вот, например, в AutoCAD-е ничего не мерцает и при этом не тормозит, и сделано явно не через двойной буфер. Так что есть и другие способы, которые можно попробовать. |
||||||
|
|||||||
ilya_z |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.1.2007 Где: Екатеринбург Репутация: нет Всего: нет |
Ничего понять не могу. Ситуация прямо обхохочешься.
Создал уже простейший пример. Всё точно также, как и делалось до этого:
А самое смешное то, что всё в этом примере работает как надо, и никаких проблем нет. С ума можно сойти. Уже не знаю что и думать. |
|||
|
||||
ilya_z |
|
|||
Новичок Профиль Группа: Участник Сообщений: 18 Регистрация: 9.1.2007 Где: Екатеринбург Репутация: нет Всего: нет |
УРА!!!
Нашёл, где собака порылась. Убираю строчку:
- и усё работает. Долбанная прозрачность. Целых два дня мне мозги компостировала. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Звук, графика и видео" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делится вскрытыми компонентами
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Girder, Snowy. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Звук, графика и видео | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |