在助手中重载全局函数
Overloading global functions in helpers
我正在为 TPoint
添加一些函数,如果我使用与全局函数相同的名称,我在辅助函数中看不到它。我是不是遗漏了什么或者我不能简单地做到这一点?
uses
Winapi.Windows, Math;
type
TPointHelper = record helper for TPoint
function InRange(const AMin, AMax: TPoint): Boolean;
end;
implementation
function TPointHelper.InRange(const AMin, AMax: TPoint): Boolean;
begin
Result := InRange(X, AMin.X, AMax.X) and InRange(Y, AMin.Y, AMax.Y);
end;
end.
您需要完全限定对 InRange
的调用,因为编译器会在最近的范围内看到 InRange
。这是你的帮助方法。您的代码应为:
function TPointHelper.InRange(const AMin, AMax: TPoint): Boolean;
begin
Result := Math.InRange(X, AMin.X, AMax.X) and Math.InRange(Y, AMin.Y, AMax.Y);
end;
我正在为 TPoint
添加一些函数,如果我使用与全局函数相同的名称,我在辅助函数中看不到它。我是不是遗漏了什么或者我不能简单地做到这一点?
uses
Winapi.Windows, Math;
type
TPointHelper = record helper for TPoint
function InRange(const AMin, AMax: TPoint): Boolean;
end;
implementation
function TPointHelper.InRange(const AMin, AMax: TPoint): Boolean;
begin
Result := InRange(X, AMin.X, AMax.X) and InRange(Y, AMin.Y, AMax.Y);
end;
end.
您需要完全限定对 InRange
的调用,因为编译器会在最近的范围内看到 InRange
。这是你的帮助方法。您的代码应为:
function TPointHelper.InRange(const AMin, AMax: TPoint): Boolean;
begin
Result := Math.InRange(X, AMin.X, AMax.X) and Math.InRange(Y, AMin.Y, AMax.Y);
end;