Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Вниз

Выделение мышью фрагмента на 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 вся ветка

Форум: "Media";
Текущий архив: 2003.07.31;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
1-100747
Vorobyev Sergey
2003-07-16 11:31
2003.07.31
Глюк!!! Смещение символов в TMemo


1-100819
DimaS
2003-07-17 13:46
2003.07.31
Плохо работает fsStayOnTop. Подскажите может есть другой способ


14-100986
Delphi5.01
2003-07-16 06:51
2003.07.31
авторизация TIdHTTP


8-100830
Андрей
2003-04-07 08:30
2003.07.31
как можно получить код алгоритмов, визуализации для winamp


14-100960
Жук
2003-07-15 14:32
2003.07.31
Работа с com-портами





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский