Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.22;
Скачать: CL | DM;

Вниз

При перерисовке мелькает label   Найти похожие ветки 

 
_Asph ©   (2007-06-27 10:06) [0]

На форме много компонентов, на которых есть label:Tlabel.
Через таймер происходит считывание разных устройств, и данные выводятся в
label.caption.
Замечено мигание порой, этих элементов. Убрал прозрачность, ничего не меняется.
Некрасиво. )


 
clickmaker ©   (2007-06-27 10:13) [1]

TWinControl.DoubleBuffered?


 
StriderMan ©   (2007-06-27 10:31) [2]


> Через таймер происходит считывание разных устройств, и данные
> выводятся в
> label.caption

if LabelX.Caption <> NewLabelXCaption then
 LabelX.Caption := NewLabelXCaption;


мысль понятна?


 
_Asph ©   (2007-06-27 12:03) [3]


> if LabelX.Caption <> NewLabelXCaption then
>  LabelX.Caption := NewLabelXCaption;

Так и организовано.
Када идут изменения, мелькает.

> TWinControl.DoubleBuffered?
>

а что это такое?
как это применить?


 
homm ©   (2007-06-27 12:05) [4]

> как это применить

Влоб. Ишеш под лейблом TWinControl и ставишь ему DoubleBuffered.

И не перерисовывай ты прикаддом опросе, если они 100 раз в секунду идут.


 
_Asph ©   (2007-06-27 12:16) [5]


> Влоб. Ишеш под лейблом TWinControl и ставишь ему DoubleBuffered.


Ну нифига не понял. Просветите недалекого...
вот такое объявление в начале

Tbunc = class(TFrame)
   mec: Tkvm;
   Cwg: TLabel;
 private
. ...
 public
...
    Function  SetWg(lin:byte):Real;{&#211;&#241;&#242; WgComp. &#194;&#251;&#226;&#238;&#228; &#226; &#240;&#229;&#246;&#229;&#239;&#242;}
...
end;

И сам вывод
Function  SetWg(lin:byte):Real;
....
{Вывод на экран)}
 If FWgComp <> FBakWg then
 begin
   FBakWg := FWgComp;
   cwg.Caption := inttostr(trunc(FWgComp));
 end;

Искал DoubleBuffered что то... потерпел фиаско)))


> И не перерисовывай ты прикаддом опросе, если они 100 раз
> в секунду идут.


Тут ты прав конечно. Вообще алгоритм работы, надо убрать от визуального представления, но это позже)


 
Tack ©   (2007-06-27 12:23) [6]

В конструкторе своего TBunc вставь строку
self.DoubleBuffered := True;

TFrame порожден от TWinControl по ходу, так что это поле там есть


 
Pohil ©   (2007-06-27 12:24) [7]


> Искал DoubleBuffered что то... потерпел фиаско)))

Его нет в инспекторе, так что ручками. Включает двойную буферизацию, т.е. сначала кадр рисуется на битмапе в памяти, а потом отображается. Иногда помогает избавиться от мерцания.


 
Tack ©   (2007-06-27 12:24) [8]

и Cwg.Parent должен указывать на родительский объект TBunc


 
homm ©   (2007-06-27 12:25) [9]

> Ну нифига не понял. Просветите недалекого...

Label1.Parent.DoubleBuffered := TRUE;



Страницы: 1 вся ветка

Текущий архив: 2007.07.22;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.021 c
2-1182949731
DimOk
2007-06-27 17:08
2007.07.22
DLL в Delphi


1-1179300822
Кирилл_А
2007-05-16 11:33
2007.07.22
Шрифт


15-1182797515
Strate
2007-06-25 22:51
2007.07.22
Ищу драйвер на звуковуху


2-1182919642
ОН
2007-06-27 08:47
2007.07.22
CheckListBox1.Canvas


2-1176793044
ak-82
2007-04-17 10:57
2007.07.22
Ошибка синтаксиса в предложении FROM