2 imt0601 IMT0601 于 2016.02.19 23:01 提问

delphi自定义个组件constructor Create

求大神指点,我自定义个组件,在constructor Create(AOwner:TComponent);override; 方法里动态添加了另外一个组件(比如是TButton),问题就是,每次重新打开源程序(窗体上添加有我新做的这个组件),在新做的组件上都会动态添加一个TButton,打开一遍,多添加一个;而且在运行的时候,也会多添加一个;搞不明白了,我的目的是在新做项目上,拖动这个组件到窗体上,就是两个组件合在一起就可以了

1个回答

caozhy
caozhy   Ds   Rxr 2016.02.20 08:18

加上一个判断
if (AOwner.ControlCount < 1) then
begin
添加
end;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Delphi的Create到底要不要声明为virtual供子类覆盖?
在D6上做了一个实验,如果子类要想覆盖父类的Creat构造函数,父类的Create必须声明为virtual,否则有时子类的代码执行不到!  TSvrBizObj = class(TPersistent) private FDBService: TLYService; public constructor Create(ADBService: TxxServ
容器集合之TCollection 和 TCollectionItem
TCollection继承于: TObject--TPersistent, 存储TCollectionItem对象的容器.
constructor super&this
class Base{ Base(int i){ System.out.println("hi"); } Base(){} //无参数的构造方法是默认的,如果创造了带有参数的构造方法,那么无参的构造方法必须显式的写出来,否则会编译失败 } class Sup extends Base{ public static void main(String args[]) { Sup a
Delphi中的构造函数
Delphi中所有类都继承自TObject ,Create默认不是虚方法 ,Destroy默认是虚方法. VCL中组件继承的大多Create都被声明成虚方法了。 在Delphi当中构造函数当中的create与析构函数destroy大部分都是虚方法.可以覆盖. 被覆盖的函数必须是虚(virtual)的,或者是动态(dynamic)的. (Constructors)构造函数, 用来创建和初始化一个实例
delphi TComponent类 2
学习DELPHI最好的方法是看DELPHI的VCL原代码爱看他的机制本文就类TComponent的原代码来看他的机制. { TComponent } constructor TComponent.Create(AOwner: TComponent); begin FComponentStyle := [csInheritable]; if AOwner <> nil then
自定义通用查询组件
Delphi 自定义组件制作 通用查询组件
Delphi中注册自定义控件
Delphi提供了丰富的VCL组件供编程人员使用,同时还允许编程人员根据实际需要进行自定义组件的编写。 组件的代码编写和我们平常写的类很相似,但也有几点不同,一个是需要从TComponent类继承而来,另一个是要使用Published关键字定义我们想要出现在对象观察器中的属性是事件,再一个就是我们要把这些代码添加到一个设计包中,之后通过对这个包进行编译和安装来发布我们编写的组件。 组件
Delphi中编写自定义组件
Delphi提供了丰富的VCL组件供编程人员使用,同时还允许编程人员根据实际需要进行自定义组件的编写。组件的代码编写和我们平常写的类很相似,但也有几点不同,一个是需要从TComponent类继承而来,另一个是要使用Published关键字定义我们想要出现在对象观察器中的属性是事件,再一个就是我们要把这些代码添加到一个设计包中,之后通过对这个包进行编译和安装来发布我们编写的组件。组件中事件的
override overload reintroduce的区别(delphi)
 1、override overload reintroduce的中文叫法是什么?   override:覆盖;overload:重载;Reintroduce:重定义 2、在子类中override或overload父类中的动态或虚拟方法后是否会改变父类中的相应方法?    不会 3、self是怎么回事,怎么使用?    Self因为这这个对象本身,例如,在TForm1的OnCreate事件中写Se
Delphi 编写自定义组件(1)
1. 组件设计基础:    1.编写组件步骤:        1) 确定一个祖先类。 TObject:直接从TObject继承下来的类不是组件。有些以此为基类的对象在设计期不需要使用,如TIniFile TComponent:这是非可视组件的起点,它的特点是在设计时能够以流的方式在IDE上存取 TGraphicControl:创建一个不需要窗口句柄、但要在屏幕上显示的组件时,用这个类作为