今天发现一个delphi2006奇怪的bug,代码是这样的function CalcPlaneBaseNormalByEdo(const AEdo: IGCLElementDrawObj): TGGLPoint3d;
begin
Result := CalcPlaneBaseNormal(TGCLFaceShape(TGCLElementDrawObj(AEdo.GetObject).Shape));
end;AEdo.GetObject访问的是接口的对象CalcPlaneBaseNormal我加了异常处理,没有走到,原因肯定参数的问题
在这个函数函数加了异常处理,异常里面重新走就没有报错换了一个方法 接口里面取对象用变量缓存,之后访问就报错了
function CalcPlaneBaseNormalByEdo(const AEdo: IGCLElementDrawObj): TGGLPoint3d;
var
oObject: TObject;
begin
oObject := AEdo.GetObject;
Result := CalcPlaneBaseNormal(TGCLFaceShape(TGCLElementDrawObj(oObject).Shape));
end;求高手帮忙解释一下
begin
Result := CalcPlaneBaseNormal(TGCLFaceShape(TGCLElementDrawObj(AEdo.GetObject).Shape));
end;AEdo.GetObject访问的是接口的对象CalcPlaneBaseNormal我加了异常处理,没有走到,原因肯定参数的问题
在这个函数函数加了异常处理,异常里面重新走就没有报错换了一个方法 接口里面取对象用变量缓存,之后访问就报错了
function CalcPlaneBaseNormalByEdo(const AEdo: IGCLElementDrawObj): TGGLPoint3d;
var
oObject: TObject;
begin
oObject := AEdo.GetObject;
Result := CalcPlaneBaseNormal(TGCLFaceShape(TGCLElementDrawObj(oObject).Shape));
end;求高手帮忙解释一下
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货