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

Выделение мышью фрагмента на Canvas   Найти похожие ветки 

 
AlexOld   (2003-04-07 11:16) [0]

Уважаемые мастера, как сделать выделяющую рамку на изображении? Рисовал PolyLine с координатами от MouseMove. Есс-но, рисуются все рамки при перемещении мышки. Как оставить только последнюю, но чтобы был виден процесс перемещения рамки - как в графических редакторах. Заранее спасибо.


 
jel ©   (2003-04-07 11:24) [1]

Рисуй сначала по старым координатам с XOR (стирание старой рамки) а потом по новым.


 
AlexOld   (2003-04-07 18:46) [2]

jel, спасибо! Пока пробовал с NOTXOR, набрел на метод DrawFocusRect - все работает как надо. Только при движении мышки без нажатия клавиши по картинке бегут полосы - не смог их убрать. Код такой:
procedure TForm1.Image1MouseMove(Sender:...);
begin
//Стирание прежней рамки
Image1.Canvas.DrawFocusRect(R);
if (ssLeft in Shift) then
begin
if XStart<X
then begin R.Left:=XStart; R.Right:=X end
else begin R.Left:=X; R.Right:=XStart end;
if YStart<Y
then begin R.Top:=YStart; R.Bottom:=Y end
else begin R.Top:=Y; R.Bottom:=YStart end;
//Рисование новой рамки
Image1.Canvas.DrawFocusRect(R);
end;
end;

Может, подскажете, куда двигаться?


 
Плохой человек   (2003-04-07 21:20) [3]

Поменяй на этот:

procedure TForm1.Image1MouseMove(Sender:...);
begin
if (ssLeft in Shift) then
begin
//Стирание прежней рамки
Image1.Canvas.DrawFocusRect(R);
if XStart<X
then begin R.Left:=XStart; R.Right:=X end
else begin R.Left:=X; R.Right:=XStart end;
if YStart<Y
then begin R.Top:=YStart; R.Bottom:=Y end
else begin R.Top:=Y; R.Bottom:=YStart end;
//Рисование новой рамки
Image1.Canvas.DrawFocusRect(R);
end;
end;


 
AlexOld   (2003-04-08 13:11) [4]

Хороший Плохой человек!
Спасибо, все получилось!



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

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



Память: 0.45 MB
Время: 0.013 c
9-100528
Eugenex
2003-02-04 10:45
2003.07.31
Почти в тему!


14-100957
Vlad Oshin
2003-06-30 19:48
2003.07.31
Вы верите в определение качеств человека по мимике, поче-


4-101047
-= Demon =-
2003-05-26 18:00
2003.07.31
Список разделов на жестком диске....


9-100527
Antichacker
2003-02-01 09:01
2003.07.31
Давайте выкладывать сюда короткие демки по GLScene, которых нет


8-100834
diablo
2003-03-31 20:03
2003.07.31
Рисование в корале




   Наверх