主题:事件的问题!关注一下!在线等待
wfwgq
[专家分:0] 发布于 2005-03-28 10:44:00
我在dll里边用了一个控件,然后我想把代码加到这个控件的一个事件里,不知道怎么加阿,
TNMFTP *nftp1;
nftp1=new TNMFTP(0);
然后我想让他执行nftp1的OnListItem这个事件,怎么给这个事件负值阿,是赋一个函数阿,还是一个对象阿,还是怎么弄啊,请各位大哥,大姐们帮帮忙阿,十万火急!小弟先谢过了!在线等待
回复列表 (共13个回复)
沙发
christ115 [专家分:1580] 发布于 2005-03-28 11:04:00
定义函数:void __fastcall NMFtpListItem(AnsiString Listing);
此函数共有,私有都无所谓
nftp1->OnListItem = NMFtpListItem;即可
板凳
wfwgq [专家分:0] 发布于 2005-03-28 11:12:00
TNMFTP *nftp1;
nftp1=new TNMFTP(0);
nftp1->OnListItem=MyListItem;
void __fastcall MyListItem(TObject *Sender /*这里的参数要一样*/)
{
//TNMFTP *nftp1;
我这样写的,但是还是不对啊
出这个错误
[C++ Error] Unit1.cpp(144): E2451 Undefined symbol 'MyListItem'
3 楼
wfwgq [专家分:0] 发布于 2005-03-28 11:12:00
我改成
void __fastcall MyListItem(TObject *Sender /*这里的参数要一样*/)
{
//TNMFTP *nftp1;
}
TNMFTP *nftp1;
nftp1=new TNMFTP(0);
nftp1->OnListItem=MyListItem;
错误提示又换成
[C++ Error] Unit1.cpp(150): E2034 Cannot convert 'void (_fastcall *)(TObject *)' to 'void (_fastcall * (_closure )(AnsiString))(AnsiString)'
我是个新手,请多多指教阿
4 楼
christ115 [专家分:1580] 发布于 2005-03-28 11:17:00
事件和函数的定义不统一嘛.
参数一定要是AnsiString Listing
5 楼
christ115 [专家分:1580] 发布于 2005-03-28 11:18:00
还有函数前面的ClassName::掉了
6 楼
wfwgq [专家分:0] 发布于 2005-03-28 11:19:00
void __fastcall NMFtpListItem(TNMFTP *nftp){
}
TNMFTP *nftp1;
nftp1=new TNMFTP(0);
nftp1->OnListItem=NMFtpListItem(nftp1);
[C++ Error] Unit1.cpp(148): E2109 Not an allowed type
7 楼
wfwgq [专家分:0] 发布于 2005-03-28 11:20:00
ClassName怎么写啊,写在什么地方
8 楼
wfwgq [专家分:0] 发布于 2005-03-28 11:21:00
我是写在dll里的
9 楼
christ115 [专家分:1580] 发布于 2005-03-28 11:26:00
void __fastcall NMFtpListItem(AnsiString Listing){
}
这个函数也可以不为类函数(function of object)
参数一定要对....
只能为AnsiString
10 楼
wfwgq [专家分:0] 发布于 2005-03-28 11:30:00
void __fastcall NMFtpListItem(AnsiString Listing){
}
TNMFTP *nftp1;
nftp1=new TNMFTP(0);
AnsiString abc="wgq";
nftp1->OnListItem=NMFtpListItem(abc);
[C++ Error] Unit1.cpp(148): E2109 Not an allowed type
或者
nftp1->OnListItem=NMFtpListItem;
[C++ Error] Unit1.cpp(148): E2034 Cannot convert 'void (_fastcall *)(AnsiString)' to 'void (_fastcall * (_closure )(AnsiString))(AnsiString)'
这是怎么回事啊
我来回复