Главная страница
    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.45 MB
Время: 0.007 c
1-100731
Rim
2003-07-18 20:30
2003.07.31
TextFile


8-100844
illusdolphin
2003-04-07 23:13
2003.07.31
Алгоритм - аналог stretchdraw


1-100814
DimaS
2003-07-17 13:49
2003.07.31
Как отследить изменения в каталоге?


7-101008
Romkin
2003-05-15 13:23
2003.07.31
файл Services - как работать?


14-100872
easy
2003-07-13 01:21
2003.07.31
mirror





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский