【发布时间】:2011-07-22 03:38:23
【问题描述】:
当将 nil 传递给期望 TComponent 的构造函数时,我遇到了一些引发异常(不支持 EIntfCasterror Cast)的代码,如下所示:
obj := SomeClass.Create(nil);
它所在的单元不包含表单,甚至 TForm 也需要在调用其构造函数时将 TComponent 传递给它。如果存在任何东西或者有办法让它接受 nil,我应该通过什么来代替 nil。
谢谢。
另外,我没有调用这个方法的源代码,或者我只会让它传递它可以访问的表单。
编辑:修正了代码示例。
EDIT2:修正了代码示例,因为我第一次写它时有第二个脑袋放屁。
EDIT3:我也没有构造函数的代码。
【问题讨论】:
-
那不是构造函数,那是强制转换。你的意思是
SomeClass.Create(nil)? -
那甚至不是 Delphi 代码。 ;-)
-
您没有提供问题的准确描述。该异常不是由您发布的代码引起的。引发异常时,构造函数 inside 正在执行哪一行代码?您所描述的一般不会发生,因此 SomeClass 的具体值很重要。请包括它。
-
我也没有那个代码。
-
@Rob,赞成,因为这是一个有趣的谜题:为什么将
nil传递给构造函数会导致EIntfCasterror异常。为什么投反对票?
标签: delphi components null delphi-6