建议用来VarIsClear检查Variant是Null,Empty还是Unassigned.但是Unassigned如果设置了varByRef标志,我发现函数可以在调试器中返回False变量.VarIsClear检查
function VarIsClear(const V: Variant): Boolean;
var
LHandler: TCustomVariantType;
LVarData: TVarData;
begin
LVarData := FindVarData(V)^;
with LVarData do
if VType < CFirstUserType then
Result := (VType = varEmpty) or
(((VType = varDispatch) or (VType = varUnknown)) and
(VDispatch = nil))
else if FindCustomVariantType(VType, LHandler) then
Result := LHandler.IsClear(LVarData)
else
Result := False;
end;
Run Code Online (Sandbox Code Playgroud)
在我的情况下,VType是16384($ 4000 = varByRef).如何检查Null,Empty或Unassigned是否正确?
| 归档时间: |
|
| 查看次数: |
4983 次 |
| 最近记录: |