Как да се отървем от обсесивно трептене?
Добър ден! Navayal компонент - потомък BitBtn, в които промяната на изображението се извършва на различни събития на мишката. Например, navozhu в него, а след това направи - промяна на снимките. Изпълнено имот
FImageList: TImageList. и процедурата за промяна на изображението изглежда по следния начин:
процедура TAFVActiveButton.SetImage (индекс: число);
започвам
ако не целеви (FImageList) след излизане;
ако индекс = -1 след излизане;
ако индекс> FImageList.Count-1 след излизане;
с Glyph започвайте
Широчина: = FImageList.Width;
Височина: = FImageList.Height;
Canvas.FillRect (Rect (0,0, ширина, височина));
FImageList.GetBitmap (Index, Glyph);
приключи;
приключи;
Когато otraboke събития трепти целия бутон. Аз не знам дали е възможно да го намали трептенето или дори трепна само глиф. Благодаря предварително.
Опитайте се да се намеси wm_erasebkgnd на съобщението.
В поставеният конструктор
DoubleBuffered: = True
Въпросът не е, че.
Например, низът
>> Canvas.FillRect (Rect (0,0, ширина, височина));
Подтекст. Това е, както аз го разбирам, в метод TAFVActiveButton.SetImage се нарича метод .Paint.
А това означава, че всеки път, когато има (както разбирам) за прекрояване компонент (принудителен или наречен от системата):
1. Почистване на платното (тук "мига")
2. Прехвърляне на снимки от ImageList "и т.н.
С една дума, истината е, както следва:
На първо място, целият смисъл е съставен въз платно временно растерна графика, а след това (в крайна сметка) със снимка на растерна графика се прехвърля на вашето платно.
.
Var TempBmp: TBitmap;
.
опитвам
TempBmp: = TBitmap.Create;
С TempBmp.Canvas направя
започвам
/// тук всичко е това, което трябва да се направи на вашия платно
/// могат да бъдат във вашия метод за вмъкване на параметъра приет
/// платно за рисуване и трансфер до платно
/// TempBmp.Canvas
приключи;
// и сега най-накрая се възползва от неговата платно
Self.Canvas.Draw (0,0, TempBmp)
накрая
TempBmp.Free;
приключи;
Дадох кода за метода .Paint
Spasibochki Димка Маслов.
Изглежда, да се работи!
Свързани статии