Вниз
Скачать: CL | DM;

Мерцание Image   Найти похожие ветки 

 
thvfrjd   (2005-12-23 10:30) [0]

Имеется простейщий граф редактор рисование происходит примерно вот так:
procedure TForm5.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
 Y: Integer);
begin

If l then begin
Image1.Picture.Bitmap.Assign(ris);
case fig of
1: Image1.Canvas.LineTo(x,y);
2: Image1.Canvas.Ellipse(x1,y1,x,y);
3: Image1.Canvas.Rectangle(x1,y1,x,y);
end;
Image1.Canvas.MoveTo(x1,y1);
end;
При движении мыши появляется неприятное мерцание Image, можно как то избавиться от него?


 
WondeRu ©   (2005-12-23 11:56) [1]

рисовать сначала на "невидимом" TBitmap, затем копировать на TImage


 
Glex ©   (2006-01-08 17:36) [2]

Оно же: Form.DoubleBuffered:= true =)))))))))))


 
Gero ©   (2006-01-08 18:00) [3]

Не используй TImage, для рисования на нем он плохо подходит.


 
antonn ©   (2006-01-08 18:10) [4]

thvfrjd   (23.12.05 10:30)
во первых, как сказал WondeRu, нужно висовать в буфере.
во вторых - что за "ris" такой?

создаем временный битмап.
Глобально описываем:
var BT:TBitmap;

в FormCreate или еще где (допустим, что исходный рисунок хранится в ris):
BT.width:=ris.width;
BT.height:=ris.height;
Image1.picture.bitmap.width:=ris.width;
Image1.picture.bitmap.height:=ris.height;

В MouseMove:
//если ris по размеру image
bt.canvas.copyrect(rect(0,0,bt.width,bt.height),ris,rect(0,0,bt.width,bt.height));
case fig of
1: Image1.Canvas.LineTo(x,y);
2: Image1.Canvas.Ellipse(x1,y1,x,y);
3: Image1.Canvas.Rectangle(x1,y1,x,y);
end;
//...
//тыры-пыры
Image1.picture.bitmap.canvas.copyrect(rect(0,0,Image1.width,Image1.height),bt,rect(0,0,bt.width,bt.height));



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.025 c
3-1142248267
thvfrjd
2006-03-13 14:11
2006.06.04
проблема с DBLookupComboBox


8-1135515760
Glex
2005-12-25 16:02
2006.06.04
Как управлять Z-Index ом у TPanel?


4-1142155729
Volf_555
2006-03-12 12:28
2006.06.04
Как закрыть окно Microsoft Internet Explorer?


4-1142384579
GRAVIX
2006-03-15 04:02
2006.06.04
Работа с реестром на чистом WINAPI


15-1146828483
Slava812
2006-05-05 15:28
2006.06.04
Буфер Windows XP




   Наверх