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

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

мерцание Label [D7, XP]


SKIPtr ©   (2011-11-09 23:26:00) 

драсте
пишу программу
там должно выводиться текущее время
я сделал табло через Label
обновление времени происходит через Timer
каждую секунду обновление показания
и вот текущее время мерцает на экране
как сделать чтоб не мерцало


SKIPtr   (2011-11-10 01:06:00) [1]


> И еще поставьте у формы doublebuffered = true

поставил в Create
все нормально заработало

еще вычитал ее можно ставить в Panel
а куда еще можно это поставить


SKIPtr   (2011-11-10 01:02:00) [2]


> поставь 1000 (1 секунда).

так оно и стоит


> Возможно Tlabel находится над какаим-то элементом который
> отрисовывается(обновляется) постоянно

только сам Tlabel перерисовываеться


vegarulez   (2011-11-10 00:57:00) [3]

Возможно Tlabel находится над какаим-то элементом который отрисовывается(обновляется) постоянно - поэтому и мерцание.
Может в Timer интервал слишком маленький - поставь 1000 (1 секунда).


SKIPtr   (2011-11-10 00:45:00) [4]


> При большом размере Label и большой скорости его изхменения
> начинает мерцать. Проверял на Delphi 7.

размер
Width = 83
Height = 33

скорость каждую секунду

и уменя делфи7


И. Павел   (2011-11-10 00:29:00) [5]


> sniknik ©   (10.11.11 00:28) [3]

При большом размере Label и большой скорости его изхменения начинает мерцать. Проверял на Delphi 7.


Омлет   (2011-11-10 00:29:00) [6]

Компоненту-контейнеру
DoubleBuffered := true;


sniknik   (2011-11-10 00:28:00) [7]

не выдумывайте проблем, и не бросайтесь с готовностью их, не существующие,  решать...
проверил, не мерцает! что делаю не так?


И. Павел   (2011-11-09 23:59:00) [8]


> И. Павел ©   (09.11.11 23:56) [1]

Самый простой способ: создайте буферный bitmap, на нем рисуйте то, что нужно вывести в текущий момент, а потом копируйте ваш битмап на форму. Это нужно чтобы после операции затирания окно не перерисовывалось.

И еще поставьте у формы doublebuffered = true


И. Павел   (2011-11-09 23:56:00) [9]


> SKIPtr ©   (09.11.11 23:26)

Рисуйте прямо на канве через textout, затирая старый вывод, например, rectangle.


Наверх

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