![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Перемещение TPanel
AlexanderSK © (2002-04-23 17:17:00)Проблема в следующем: есть Panel, на которой лежит куча Label-ов. При перемещение панли (в лоб Top := Top + 10) все это щастье при перерисовке жутко мигает! Можно ли с этим как-то бороться?
AlexanderSK (2002-04-24 14:16:00) [1]Как выяснилось все дело в Фокусе!
т.е. Есть форма, на ней фрейм, на нем панель (та самая).
Так вот: Frame.SetFocus; (или Panel.SetFocus; - высеравно) - начинается моргание.
Form.SetFocus; - моргание заканьчивается.
PaRL (2002-04-24 14:08:00) [2]
> Всем спасибо! Насамом деле все оказалос проще!
Дак расскажи. Вместе посмеёмся :)
AlexanderSK (2002-04-24 13:25:00) [3]Всем спасибо! Насамом деле все оказалос проще!
olden (2002-04-23 18:17:00) [4]Черт! Читаю невнимательно :)
Используй не Top := , Left :=
а Panel1.SetBounds
Тогда перемещение произойдет мгновенно
PaRL (2002-04-23 18:15:00) [5]
> на сколько я помню используется для перетакивания мышью!
Дык а что надо то???
Он не сказал как именно он хочет перемещать её...
Так бы и написал, что не мышкой, а то сидишь тут пальцы мозолишь - пишешь :)
olden (2002-04-23 18:11:00) [6]еще пара рецептов
1) перемещении отрисовывай только обрамляющую рамку (DrawFocusRect)
2) Panel1.ControlStyle := Panel1.ControlStyle + [csOpaque];
AlexanderSK (2002-04-23 18:09:00) [7]Не не помогает ни то ни другое!
А:
ReleaseCapture;
Panel1.Perform(WM_SYSCOMMAND, $F012, 0);
на сколько я помню используется для перетакивания мышью!
PaRL (2002-04-23 18:01:00) [8]Не.
ReleaseCapture;
Panel1.Perform(WM_SYSCOMMAND, $F012, 0);
MBo (2002-04-23 17:32:00) [9]DoubleBuffered:=True;