![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
При перерисовке мелькает label
_Asph © (2007-06-27 10:06:00)На форме много компонентов, на которых есть label:Tlabel.
Через таймер происходит считывание разных устройств, и данные выводятся в
label.caption.
Замечено мигание порой, этих элементов. Убрал прозрачность, ничего не меняется.
Некрасиво. )
homm (2007-06-27 12:25:00) [1]> Ну нифига не понял. Просветите недалекого...
Label1.Parent.DoubleBuffered := TRUE;
Pohil (2007-06-27 12:24:00) [2]
> Искал DoubleBuffered что то... потерпел фиаско)))
Его нет в инспекторе, так что ручками. Включает двойную буферизацию, т.е. сначала кадр рисуется на битмапе в памяти, а потом отображается. Иногда помогает избавиться от мерцания.
Tack (2007-06-27 12:24:00) [3]и Cwg.Parent должен указывать на родительский объект TBunc
Tack (2007-06-27 12:23:00) [4]В конструкторе своего TBunc вставь строку
self.DoubleBuffered := True;
TFrame порожден от TWinControl по ходу, так что это поле там есть
_Asph (2007-06-27 12:16:00) [5]
> Влоб. Ишеш под лейблом TWinControl и ставишь ему DoubleBuffered.
Ну нифига не понял. Просветите недалекого...
вот такое объявление в начале
Tbunc = class(TFrame)
mec: Tkvm;
Cwg: TLabel;
private
. ...
public
...
Function SetWg(lin:byte):Real;{Óñò WgComp. Âûâîä â ðåöåïò}
...
end;
И сам вывод
Function SetWg(lin:byte):Real;
....
{Вывод на экран)}
If FWgComp FBakWg then
begin
FBakWg := FWgComp;
cwg.Caption := inttostr(trunc(FWgComp));
end;
Искал DoubleBuffered что то... потерпел фиаско)))
> И не перерисовывай ты прикаддом опросе, если они 100 раз
> в секунду идут.
Тут ты прав конечно. Вообще алгоритм работы, надо убрать от визуального представления, но это позже)
homm (2007-06-27 12:05:00) [6]> как это применить
Влоб. Ишеш под лейблом TWinControl и ставишь ему DoubleBuffered.
И не перерисовывай ты прикаддом опросе, если они 100 раз в секунду идут.
_Asph (2007-06-27 12:03:00) [7]
> if LabelX.Caption <> NewLabelXCaption then
> LabelX.Caption := NewLabelXCaption;
Так и организовано.
Када идут изменения, мелькает.
> TWinControl.DoubleBuffered?
>
а что это такое?
как это применить?
StriderMan (2007-06-27 10:31:00) [8]
> Через таймер происходит считывание разных устройств, и данные
> выводятся в
> label.caption
if LabelX.Caption <> NewLabelXCaption then
LabelX.Caption := NewLabelXCaption;
мысль понятна?
clickmaker (2007-06-27 10:13:00) [9]TWinControl.DoubleBuffered?