ПредишенСледващото

Как да се отървем от обсесивно трептене?

Добър ден! 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 Димка Маслов.
Изглежда, да се работи!

Свързани статии

Подкрепете проекта - споделете линка, благодаря!