这样的事件如何编写? ( 积分: 100 )

  • 主题发起人 主题发起人 ZBJ2001_KF
  • 开始时间 开始时间
Z

ZBJ2001_KF

Unregistered / Unconfirmed
GUEST, unregistred user!
我自定义一个控件,是在TPANEL上加TEDIT控件即TPANELEDIT控件.现想加入ONCHANGE事件,即TEDIT的ONCHANGE事件.
TZBJPANELEDIT = class(TCustomPanel)
private
FEDIT:TEDIT;
FOnChange:TNotifyEvent;
published
property OnChange: TNotifyEvent read FOnChange write FOnChange;
END;
 
我自定义一个控件,是在TPANEL上加TEDIT控件即TPANELEDIT控件.现想加入ONCHANGE事件,即TEDIT的ONCHANGE事件.
TZBJPANELEDIT = class(TCustomPanel)
private
FEDIT:TEDIT;
FOnChange:TNotifyEvent;
published
property OnChange: TNotifyEvent read FOnChange write FOnChange;
END;
 
是我写的不清楚吗
 
我看了edit的代码
好像就着一行 property OnChange: TNotifyEvent read FOnChange write FOnChange;
 
oncreate事件中
FOnChange:=fedit.onchange
 
因为我继承的是TPANEL,内包含TEDIT. 如果我继续TEDIT.就没有问题了.
 
maze的可行
当edit改变的时候
把消息穿给panle
 
PANEL应该不能响 应CMTextChanged消息吧。我是想所FEDIT.ONCHANGE:=self.onchange

但测试不行。

您所说的把消息穿给panle该如何实现
 
FOnChange:=fedit.onchange
和FEDIT.ONCHANGE:=SELF.FONCHANGE
我都试了.不行啊.帮帮我
 
你要在什么时候触发你的控件的ONCHANGE事件?
 
fedit.OnChange:=change;
然后我在CHANGE中
procedure TZBJPANELEDIT.CHANGE(sender:tobject);
begin
if Assigned(FOnChange) then FOnChange(Self);
end;
这样可以了.我的意思是在这个新的控件中,将TEDIT的ONCHANGE事件显示出来.但您说的法不行,不清楚为什么
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
741
import
I
后退
顶部