Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.04;
Скачать: 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 вся ветка

Текущий архив: 2006.06.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.03 c
2-1147699621
Ironman83
2006-05-15 17:27
2006.06.04
Выборки через TIBDataset


2-1147710000
Stasss
2006-05-15 20:20
2006.06.04
Программа по поиску текстовых файлов!


15-1147014913
vidiv
2006-05-07 19:15
2006.06.04
ДТП


8-1136560269
Syrnik
2006-01-06 18:11
2006.06.04
DShow: Разделить стерео аудио на 2 моно


15-1146739931
Pazitron_Brain
2006-05-04 14:52
2006.06.04
Что нужно, чтобы запустить IntraWeb приложение?