![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
||||
|
||||
|
А еще можно не отключать перерисовку... тогда даже быстрее будет )
|