-
На форме лежит TPageControl, на нем TImage, в котором загружена картинка. Вызов MyImage.Canvas.DrawFocusRect(обработчики висят на TImage) на обработчиках событий мыши приводит к не правильной прорисовке "резинового" прямоугольника. Примеры из инета не приводят к желаемому результату. Может кто-то сталкивался с подобным ? Спасибо.
-
TImage - не лучший инструмент для отображения меняющихся картинок.
А в остальном - кода мы не видели...
-
Не берусь спорить. Код такой :
procedure TfrmPage.DrawRect(R: TRect);
begin
ImageObj.Picture.Bitmap.Canvas.DrawFocusRect(R);
end;
procedure TfrmPage.ImageObjMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if Button = mbLeft then begin
DrawRect(Rect(X,Y,X,Y));
XB := X;
YB := Y;
XE := X;
YE := Y;
Drag:=True;
end;
end;
procedure TfrmPage.ImageObjMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
If not Drag then exit;
DrawRect(Rect(XB,YB,XE,YE));
DrawRect(Rect(XB,YB,X,Y));
XE:=X;
YE:=Y;
end;
procedure TfrmPage.ImageObjMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
If not Drag then Exit;
DrawRect(Rect(XB,YB,XE,YE));
Drag:=false;
end;
-
на MouseUp не нужно рисовать, только флаг Drag сбросить
-
Сбросить можно. Но прямоугольник изначально рисуется не там. Почему ?
-
в DrawRect
Image.Canvas.DrawFocusRect(R);
и у меня всё работает
-
Пробовал. Не там рисуется. В инете читал, что дрова видюхи виноваты. Такое может быть ? Если так, то как определить будет прога работать корректно на иных компах ?
-
>Не там рисуется
А где?
>дрова видюхи виноваты. Такое может быть ?
Не сталкивался
-
на форме или на PaintBox нормально работает?
-
>А где?
Ниже курсора.
>на форме или на PaintBox нормально работает?
Если на форме только TImage, то Form.Canvas.DrawFocusRect(НЕ Image.Canvas.DrawFocusRect) работае абсолютно корректно.
-
ну тогда надо избавляться от TImage
-
Спасибо за ответы. Замена TImage на TcxImage(из DevExpress) решила означенную проблему, но, как водится, породила новые. Их решением занимаюсь самостоятельно(пока :-) ).
-
костыль на костыль?
-
>костыль на костыль?
Очень на то похоже :-)
-