|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
Запрет перерисовки формы
Вот кусок кода
Код:
Perform(WM_SETREDRAW,0,0); for i:=0 to High(ga) do begin if ga[i].value<>'0' then AddEl(ga[i].value); end; Perform(WM_SETREDRAW,1,0); Form1.Refresh; Вначале отключается перерисовка формы. В цикле создается некоторое количество компонентов TPanel (порой большое количество). Для более быстрой работы и решил отключать перерисовку. Но в конце форма не перерисовывается (созданные компоненты не отображаются, ХОТЯ СОЗДАЮТСЯ). При клике по ним мышью, меняется их стиль, и они появляются. Подскажите из-за чего может быть проблема? |
#2
|
|||
|
|||
Я пользовался LockWindowUpdate().
В твоем случае можно просто вызвать Invalidate или Update для формы в конце процедуры. |
Этот пользователь сказал Спасибо lmikle за это полезное сообщение: | ||
morebeauty (21.06.2012)
|
#3
|
||||
|
||||
Код:
Perform(WM_SETREDRAW,0,0); for i:=0 to High(ga) do begin if ga[i].value<>'0' then AddEl(ga[i].value); end; Perform(WM_SETREDRAW,1,0); Form1.refresh; Form1.Update; form1.Invalidate; Не помогло. |
#4
|
|||
|
|||
можно каждую панель refresh
|
#5
|
||||
|
||||
А еще можно не отключать перерисовку... тогда даже быстрее будет )
|