请问tform2.Create(nil)中的nil是什么意思啊?马上揭贴

架构之路 2005-10-27 05:52:14
with tform2.Create(nil) do
try
showmodal;
finally
free;
end;

我一般用
if form1=nil then
form1:=TForm.Create(self)

前种方法中的nil是什么意思,前种方法和我的方法那一个更好呀??感谢答疑解惑
...全文
274 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
XDvlper 2005-10-28
  • 打赏
  • 举报
回复
首先,nil是空指针;其次控件的默认构造函数是Create(AOwner: TComponent),AOwner是要创建控件的拥有者,即控件创建后会加入到AOwner的控件列表中,此时控件的生存期可以交给AOwner控制,在AOwner释放时,会将它的控件列表中的所有控件释放,如果这时你自己维护控件的生存期,在AOwner释放之前,将控件释放了,会导致AOwner在释放控件时导致异常,只不过它自己吞掉了,而且影响效率。如果指定AOwner为nil,那么就是说控件的生存期没有东西可以帮你维护,你只能自己去维护。
xiaocuo_zrf 2005-10-28
  • 打赏
  • 举报
回复
with tform2.Create(nil) do
try
showmodal;
finally
free;
end;

-----------
TForm2进行实例化的时候没有指定他的属主。
因为是ShowModal的窗体,所以
用With do 引起来,在Finally后手动释放
如果 form1:=TForm.Create(self)
表示 Form1的属主是你这个Self 当Self释放的时候 Form1也被释放了
//
详细资料参看刘艺《Delphi面向对象编成思想》
架构之路 2005-10-28
  • 打赏
  • 举报
回复
释放是不是在form.close时进行的啊?
sunnysmile 2005-10-28
  • 打赏
  • 举报
回复
没有指定属主!
xixuemao 2005-10-27
  • 打赏
  • 举报
回复
传nil说明需要自己管理你form的释放

不传nil说明不用自己释放form,你form的所有者会帮你释放

个人倾向与自己释放的方式。
solokey 2005-10-27
  • 打赏
  • 举报
回复
自己释放写nil就可以了..
Create(AOwner:TComponent);
AOwner就是它的所有者..所有者释放时也会释放该组件..
如果为nil,就需要手动释放该组件了.
至于怎么用.你自己权衡就可以了..
内容概要:SSD2828QN4是一款MIPI主桥接芯片,用于连接应用处理器与传统并行LCD接口及支持MIPI从属接口的LCD驱动器。该芯片支持最高每通道1Gbps的串行链路速度,最多可配置4个数据通道,显著减少了信号数量。它支持多种接口模式,包括RGB+SPI组合接口,适用于驱动智能或非智能显示面板,并能通过命令模式和视频模式传输数据。芯片内置时钟和复位模块、外部接口、协议控制单元(PCU)、包处理单元(PPU)、错误校正码/循环冗余校验(ECC/CRC)模块、长包和命令缓冲区、D-PHY控制器、模拟收发器以及内部锁相环(PLL),确保了高效的数据传输和系统稳定性。此外,文档详细描述了芯片的引脚分配、寄存器设置、操作模式、电源序列、时序特性等关键参数,为开发者提供了全面的技术指导。 适合人群:具备一定硬件设计基础,从事嵌入式系统开发、显示技术研究的研发人员。 使用场景及目标:①实现应用处理器与MIPI兼容显示屏之间的高速数据传输;②优化显示系统的功耗表现,减少电磁干扰(EMI);③通过灵活配置不同接口模式来适应各种显示设备的需求。 阅读建议:此文档面向具有一定电子工程背景的专业人士,建议读者结合实际项目需求深入理解各章节内容,特别是关于寄存器配置、时序要求等方面的具体说明。对于初次接触此类技术的开发者而言,建议先熟悉基本概念再逐步掌握高级功能的应用方法。

16,741

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧