Текущий архив: 2005.07.11;
Скачать: CL | DM;
ВнизСерое мелькание при перерисовке Найти похожие ветки
← →
Сергей Петров (2005-06-22 08:09) [0]При изменении содержания tpanel или tlabel или чего-нибудь подобного, когда они перерисовываются мелькает серый цвет (компоненты сами - желтые). Как этого избежать?
← →
Satan jr. (2005-06-22 08:20) [1]Попробуй сделать так:
Procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.DoubleBuffered:=true;
end;
Это снизит скорость, но устранит мерцание (flicker)
← →
тихий вовочка © (2005-06-22 09:00) [2]Вопрос вдогонку: а не обработка ли WM_ERASEBKGND мерцает? Можно ли ее отключить?
← →
-=XP=- © (2005-06-22 09:27) [3]
TSomeClass = class
private
procedure WMEraseBkGnd(var AMsg: TWMEraseBkGnd); message WM_ERASEBKGND;
...
procedure TSomeClass.WMEraseBkGnd(var AMsg: TWMEraseBkGnd);
begin
AMsg.Result := 1; // Ненулевое возвращаемое значение является признаком того, что задний фон (background) уже стерт/прорисован, и системе не надо его стирать/прорисовывать.
end;
Использовать такое решение можно лишь в том случае, если контрол в последующем будет полностью прорисовывать занимаемую область. В противном случае будет "мусор".
Страницы: 1 вся ветка
Текущий архив: 2005.07.11;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.035 c