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

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

Наверх




Память: 0.47 MB
Время: 0.03 c
14-100887
handra
2003-07-15 18:11
2003.07.31
другая сторона жизни


3-100602
Spawn
2003-07-09 13:03
2003.07.31
Редактирование данных


3-100601
tamara
2003-07-08 15:22
2003.07.31
Locate


3-100641
XanderMan
2003-07-10 16:09
2003.07.31
Oracle Server и Client на одной машине


1-100777
Checist [root]
2003-07-16 16:52
2003.07.31
Рисование в ячейке DrawGrid а