Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
ВнизРабота с Canvas Найти похожие ветки
← →
Mr_Hunter (2002-05-30 15:54) [0]Господа мастера! Помогите решить вот какую проблему.
На Canvase нарисована (к примеру) окружность. На OnMouseMove повешен обработчик: при движении мыши перемешать окружность в то место где в тек момент находиться мышь. Но при перерисовке идет мерцание! Вопрос можно ли от него избавиться и как!! Хорошо бы работающий пример!
Заранее спасибо.
← →
Song (2002-05-30 15:59) [1]А как рисуете окружность?
← →
AlexanderSK (2002-05-30 16:01) [2]Расскажи конкретнее как ты ее перерисовываеш?
← →
MaximatorVeter (2002-05-30 16:11) [3]Как мне кажется в этом случаи всегда будет заметно мигание.
А вот если использовать API DirectX, то точно мигать не будет.
← →
int64 (2002-05-30 17:51) [4]Надо виртуальный битмап юзать. Вот набросал.
var
Form1: TForm1;
Bitmap: TBitmap;
R: TRect;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
R:= Rect(10, 10, 50, 50);
Bitmap:= TBitmap.Create;
Bitmap.Height:= Height;
Bitmap.Width:= Width;
Bitmap.Canvas.Brush.Color:= Color;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Bitmap.Free;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
const incr = 5;
var TempRect: TRect;
begin
TempRect:= R;
R:= Rect(R.Left+incr, R.Top, R.Right+incr, R.Bottom);
UnionRect(TempRect, TempRect, R);
Bitmap.Canvas.FillRect(TempRect);
Bitmap.Canvas.Ellipse(R);
Canvas.CopyRect(TempRect, Bitmap.Canvas, TempRect);
end;
Дерзай.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.10;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.005 c