【发布时间】:2018-07-03 18:50:20
【问题描述】:
为什么这段代码不会崩溃? T 为零。如果T 是nil,如何访问Caption?
procedure Crash;
VAR T: TButton;
begin
T:= NIL;
T.Caption:= ''; <---------- this works
end;
【问题讨论】:
-
@KenWhite 我也是这么想的,不过我只是测试了一下,不管我通过什么值,它仍然不会崩溃。在内部,它成功地为
WM_SETTEXT和CM_TEXTCHANGED发送Windows 消息。 -
因为它是 Windows 控件的包装器,它使用消息来设置实际值。它有安全防护,可以防止在 nil 控件上发送消息。当然,它也可以工作,因为属性设置器不是虚拟的。
-
@Ken 将标题设置为空字符串肯定会有所作为。
标签: delphi delphi-xe7