给onclick赋值?

                            
我现在做的一个程序中涉及到了动态菜单的问题,特向各位高人求教。   
  我从数据库里读一个记录(SQL语句文件名),然后根据这个记录生成动态菜单,再通过点击这个动态菜单调用相关SQL语句进行查询。  
   
  现在读取记录这些已经做好了,调用SQL语句进行查询的过程也做好了。但是就是不知道如何将两部分连起来。  
   
  在大富翁的离线包里看到了某达人的一段代码。  
  里面有:  
   
  procedure   TForm1.FileOpen(Sender:   TObject);  
      begin  
      if   OpenDialog1.Execute   then  
      begin  
          //PerformFileOpen(OpenDialog.FileName);  
          richEdit1.lines.loadfromfile(OpenDialog1.filename);  
      end;  
      end;  
   
      …  
    Newitem.Onclick:=fileopen;        
   
    里面将一个过程赋给了一个菜单项(NEWITEM)的ONCLICK事件。  
   
    于是效仿写了一段  
     
    submenu[i].OnClick:=tform1.query(i);          
      其中SUBMENU[I]为菜单项的一个数组,QUERY为相应的一个调用SQL语句的过程  
      但是总是报错。  
   
  报错号为  
  [Error]   Unit1.pas(604):   This   form   of   method   call   only   allowed   for   class   methods  
   
  如果改为  
    submenu[i].OnClick:=query(i);  
  则报错为  
  [Error]   Unit1.pas(604):   Incompatible   types:   'TNotifyEvent'   and   'procedure,   untyped   pointer   or   untyped   parameter'  
   
  请高手赐教。        
    报错号位604,  
 

查看回复