Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Развертывание окна [D7, WinXP]


Damager ©   (2006-05-19 17:49:00) 

При развертывании окно немного дергается, и выглядит это некрасиво.

Можно ли временно отключить прорисовку в момент развертывания? Чтобы получить сразу окно в полный экран.


Rial   (2006-05-19 18:09:00) [1]

Отрисовку окна можно отключить вот так.

procedure LockControl(Const C:TWinControl;Const bLock,bMustRepaint:Boolean);
begin
If(C=Nil)or(C.Handle=0) then Exit;
If(bLock)then SendMessage(C.Handle,WM_SETREDRAW,0,0)
         else begin
          SendMessage(C.Handle,WM_SETREDRAW,1,0);
          If (bMustRepaint)then
           RedrawWindow(C.Handle,Nil,0,
                        RDW_ERASE or RDW_FRAME or RDW_INVALIDATE or RDW_ALLCHILDREN);
         end;
end;


Но, скорее всего, проблема не в этом.
Нужно уменьшить количество отрисовываемых элементов в окне или
отрисовывать их постепенно после появления окна в первый раз.

Еще попробуй
DoubleBuffered:=True
для формы и панелей.

Возможно, у тебя в обработчике OnResize формы что - либо громоздкое
написано. А при максимизации этот обработчик быдет вызываться, ИМХО,
4 раза. Так что учти это.


Наверх

Титульная страница Поиск, карта сайта Написать письмо