DB
Size: a a a
DB
D
DB
D
DB
DV
procedure Tfm.ShapeAllMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);GB
D
function CalcLeftTop(const ALeft, ATop, AX, AY, AFX, AFY: Double; out AOutLeft: Double; out AOutTop: Double): Boolean;грубо говоря этот код закроет дыру с Sender'ом, возможно кривым кастингом и неявной работой.
begin
Result := False;
AOutLeft := ALeft + AX - AFX;
AOutTop := ATop + AY - AFY;
Result := True;
end;
procedure Tfm.ShapeAllMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if TryCalcLeftTop(ShapeAll.Left, ShapeAll.Top, vX, vY, vFX, vFY, vOutLeft, vOutTop) then
begin
ShapeAll.Left := vOutLeft;
ShapeAll.Top := vOutTop;
end
else
raise E;
end;
D
D
DB
GB
function CalcLeftTop(const ALeft, ATop, AX, AY, AFX, AFY: Double; out AOutLeft: Double; out AOutTop: Double): Boolean;грубо говоря этот код закроет дыру с Sender'ом, возможно кривым кастингом и неявной работой.
begin
Result := False;
AOutLeft := ALeft + AX - AFX;
AOutTop := ATop + AY - AFY;
Result := True;
end;
procedure Tfm.ShapeAllMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
if TryCalcLeftTop(ShapeAll.Left, ShapeAll.Top, vX, vY, vFX, vFY, vOutLeft, vOutTop) then
begin
ShapeAll.Left := vOutLeft;
ShapeAll.Top := vOutTop;
end
else
raise E;
end;
D
DB
D
GB
D
SB
D
function CalcLeftTop(const ALeft, ATop, AX, AY, AFX, AFY: Double; out AOutLeft: Double; out AOutTop: Double): Boolean;Вот подправил. Смысл в том что в HttpRequest может произойти вылет какого-то волшебного компонента для работы с Http
begin
Result := False;
try
AOutLeft := ALeft + AX - AFX;
AOutTop := ATop + AY - AFY;
HttpRequest();
raise Exception.Create('Error Message');
Result := True;
except
end;
end;