主题:事件的问题!关注一下!在线等待
			
 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)'
这是怎么回事啊
							 
									
			
我来回复