创建无法在表单上多次添加的简单组件

XBa*_*000 3 delphi components custom-controls

如何编写一个从不允许它在表单上多次删除的简单组件?
比方说,我已经在表单上删除了我的TMyComponent,如果我将删除另一个TMyComponent,它会通知'组件已经存在!' 并将取消在表单上删除组件.

Cos*_*und 10

组件构造函数接受一个Owner参数:通常是您的Form(或DataModule).只需Owner.Components查看列表,看看是否还有其他人.如果有,请提出异常.

这将阻止在设计时和运行时添加组件.

  • IDE总是在设计时将Form(或DataModule)设置为组件的所有者,因此不需要再继续使用所有者.除非测试对Developer在运行时创建的组件有一定的意义. (2认同)