TPaintBox增加OnCreate事件的问题!(50)

  • 主题发起人 主题发起人 prtmon
  • 开始时间 开始时间
P

prtmon

Unregistered / Unconfirmed
GUEST, unregistred user!
我继承TPaintBox,想加入OnCreate事件.在private里加入了FOnCreate :TNotifyEvent;Published里加入了property OnCreate:TNotifyEvent read FOnCreate write FOnCreate;在界面设计时,可以加入OnCreate事件了,但实际上并没有触发此事件,这是为什么啊?其实我是想在控件建立后,自动通过外部传入的一个过程对内部的一个参数进行操作,现在只能是手动去触发这个事件,有没有办法自动触发OnCreate事件啊
 
你这样加了属性就希望它能自动调用?对constructor Create(AOwner: TComponent); override;进行继承,并添加如下代码:inherited;if Assigned(FOnCreate) then FOnCreate(Self);
 
这个当然有写的,还是无效的,Assigned(FonCreate)不为真的
 
呵呵, 你 constructor 时, 实列还没生成完呢~, 你哪有机会去给 property OnCreate; 赋值?~~~构造时传进去constructor Create(AOwner: TComponent;AOnCreate:TNotifyEvent); override;begin// ..........end;
 
constructor Create(AOwner: TComponent;AOnCreate:TNotifyEvent); override;根本就出错的,Declaration of 'Create' differs from previous declaration
 
呵呵,我想你也没有实际测试过这个代码吧。还有它的resize事件,竟然连位置移动也触发事件的,而TPanel的resize改变坐标位置就不会触发,而只有当大小改变时才会触发的
 
有道理,那就写在 procedure Loaded; override; 过程中吧,测试通过!
 
嗯,测试通过了,你真是一个好人.给分!我放在AfterConstruction里也不行。
 
来自:prtmon, 时间:2009-4-8 15:35:58, ID:3952890 constructor Create(AOwner: TComponent;AOnCreate:TNotifyEvent); override;根本就出错的,Declaration of 'Create' differs from previous declaration----------------------------------------------------------->>>我无语了~~~, constructor 是不需要 override 的;constructor Create(AOwner: TComponent;AOnCreate:TNotifyEvent); reintroduce;begin Inherited Create(AOwner); FOnCreate := AOnCreate; // 你想什么时候调用就什么时候调用~~~end;
 
我也很郁闷,你说得这么清楚,我怎么就调试不成功呢?提示:E2003 Undeclared identifier:'Create'
 
liuls,您能在你电脑上测试一下你的代码吗?我真不知道该怎么抄你的代码才能正确调试的。
 
类名呢? 不好意思! 我忘了给你取个类名了~// 类内声明部分constructor Create(AOwner: TComponent;AOnCreate:TNotifyEvent); reintroduce;// 实现部分constructor 类名.Create(AOwner: TComponent;AOnCreate:TNotifyEvent);beginend;
 
to:liuls组件编译是通过了,但是当我在界面上放入组件时,在constructor 类名.Create(AOwner: TComponent;AOnCreate:TNotifyEvent);写的属性初始化并没有生效,oncreate里的处理出现存取变量错误
 
后退
顶部