画像の縦横比を維持する画像に FocusRect を描画できるようにしたいと考えています。私の問題は、FocusRect がマウスの y 座標のみに依存することです。長方形を両方のマウス座標に依存させる方法がわかりません...これは私のコードです:
procedure TForm1.AuswahlRechteck; //Due to this procedure it doesn't matter in which corner the rectangle begins
begin
Image1.Canvas.DrawFocusRect(Rect(X0,Y0,MX,MY));
Image1.Canvas.DrawFocusRect(Rect(X0,MY,MX,Y0));
Image1.Canvas.DrawFocusRect(Rect(MX,MY,X0,Y0));
Image1.Canvas.DrawFocusRect(Rect(MX,Y0,X0,MY));
end;
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
X0:=X;
MX:=X;
Y0:=Y;
MY:=Y;
AuswahlRechteck;
InMove:=true;
end;
procedure TForm1.Image1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
if InMove then
begin
AuswahlRechteck;
MY:=Y;
MX:=X;
if (((MX < X0) AND (MY > Y0)) OR ((MX > X0) AND (MY < Y0))) then MX:=Round(X0-((MY-Y0)*Image1.Width/Image1.Height))
else MX:=Round(X0+((MY-Y0)*Image1.Width/Image1.Height));
AuswahlRechteck;
end;
end;
誰か助けてくれませんか?
ヘンリー