You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Delphi函数中如何判断TMemo类型参数不为空?现有判空代码无效

Delphi中TMemo参数的正确判空方法

在Delphi中,判断TMemo这类对象类型的参数是否为空,不能使用NULL,因为NULL主要适用于指针或变体类型。对于TComponent派生的对象(如TMemo),正确的判空方式是使用Assigned()函数。

修正后的代码

function send(logger: TMemo): boolean;
begin
  Result := True; // 原代码未给函数返回值赋值,需补充
  if Assigned(logger) then 
    logger.Lines.Add('aaaa');
end;

核心说明

  • Assigned()函数专门用于检查对象引用是否指向有效的实例,是Delphi中判断对象非空的标准写法。
  • 直接使用logger <> NULL的写法不符合Delphi编码规范,编译器会将NULL隐式转为nil,但在部分场景下会出现判断失效的问题,因此不推荐。
  • 注意:原函数未给Result赋值,这会导致返回值不确定,必须补充返回值的赋值逻辑。

内容的提问来源于stack exchange,提问作者vico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:50:31