TComponent(Reference):= nil;//消除“野“指针!good
raise;
end;
{如果创建的是窗口且还没有主窗体的话,就把刚创建的窗体设为主窗体}
if (FMainForm = nil) and (Instance is TForm) then
begin
TForm(Instance).HandleNeeded;
FMainForm := TForm(Instance);//设置主窗体
{ 实际上,在项目选项(project->options)中设置主窗体,实际上就把工程文件中相应的窗体语句提到所有创建窗体语句之前。}
end;
end;
2) 析构方法的多态请参考《剖析Delphi中的构造和析构》,第3.3节
2.2 Tstrings
字符串数组处理在Delphi的控件中十分常见,通常是一些Items属性,我们用起来也特别地方便(因为都是一样的使用接口),这得益于Delphi中字符串数组的架构的设计。这是一个成功的设计。
由于很多控件中要用到字符串数组,如ComboBox,TstringGrid等等,但每个控件中的字符串数组又不同,Delphi由此把字符串数组但抽象出来,从而出现了很多与之相关的类。其中基类Tstrings只是提供为各种调用提供接口,具体实现完全可由其派生类中实现,因此,把Tstrings定义为抽象类。
下面就来看看基类TStrings类的常用方法的定义(参见Classes单元第442行):
TStrings = class(TPersistent)
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/