![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Отрисовка Формы
Mechanic © (2006-08-18 11:26:00)Как узнать, отрисовала ли форма себя или нет? При этом вешаться на событие OnPaint нельзя.
Ketmar (2006-08-18 13:03:00) [1]> [11] Mechanic (18.08.06 12:07)
бр-р-р. так ты таким образом кэшируешь? ужос. PaintTo() не спасает ОРД?
Mechanic (2006-08-18 12:07:00) [2]Да я и не выставляю поверх всех, я только лишь убрал вызов изображения из буфера в случае перекрывания другим окном, пускай мой заново отрисовывается.
Ketmar (2006-08-18 12:03:00) [3]> [9] Mechanic (18.08.06 11:59)
не надо звать Paint(). надо звать или Invalidate(), или Update().
а выставление своего окна поверх всех тоже не универсальное решение. %-)
Mechanic (2006-08-18 11:59:00) [4]У меня несколько сложнее, чем было сказано. при старте формы происходит загрузка данных в мой объект. Также загрузка может произойти и в последующие моменты работы программы, при этом объект немедленно должен себя перерисовать. Вот на загрузке у меня и висел вызов Paint.
Ketmar, большое спасибо за "Always on top".
Ketmar (2006-08-18 11:54:00) [5]> [7] Mechanic (18.08.06 11:51)
а это ещё зачем??? всё, что делает Invalidate() -- это говорит винде, что надо бы WM_PAINT послать. который и так уже сидит в очереди, потому что посылается при показе окна.
Mechanic (2006-08-18 11:51:00) [6]Ребята, всем спасибо. Сам разобрался. Я вызывал своему объекту принудительно Paint на FormCreate. Paint заменил на Invalidate и все пошло.
Ketmar (2006-08-18 11:49:00) [7]пошли из OnShow WM_USER какой-нибудь. он придёт после того, как всё нарисуется, афаир.
zamtmn (2006-08-18 11:48:00) [8]>>Я рисую свой объект на FormCreate, а затем при помощи BitBlt сохраняю его вид в память.
дак ты его сразу в память рисуй, а потом выводи на форму
Mechanic (2006-08-18 11:38:00) [9]Блин. Верно!
Но это я смогу обойти.
Главное мне сейчас не скриншотить, пока мое окно не нарисовано.
Ketmar (2006-08-18 11:34:00) [10]вопрос номер следующий: зачем так делать? это неверно. представь, что часть твоего окна по-любому перекрывается другим, которое "always on top". много ты наскриншотишь.
Mechanic (2006-08-18 11:31:00) [11]Я рисую свой объект на FormCreate, а затем при помощи BitBlt сохраняю его вид в память. Так у меня получается схватить вид, того окна, которое лежит под моим, потому что мое еще не отрисовалось.
Ketmar (2006-08-18 11:27:00) [12]хм. а зачем?