我的label1是动态生成的。生成以后我用了arryTitleLab[i].onclick:=Click1;
我在我的click1事件里要用到我主函数里的一个变量i.我怎么把他穿过去啊??
我试了arryTitleLab[i].onclick:=Click1(i);在函数里是这样写的。
procedure TForm1.Click1(Sender: TObject);
begin
 ShellExecute(Handle, nil, pchar('D:\wwz\工资管理\通知\i.txt'), nil, nil, SW_SHOWNORMAL);
end;
就是'D:\wwz\工资管理\通知\i.txt中的i应该是主函数里传过来的。我该怎么写着一点啊??谢谢。急啊??我郁闷了一下午。帮我啊。

解决方案 »

  1.   

    应该可以用tag属性
    在创建的时候arryTitleLab[i].tag=i
    procedure TForm1.Click1(Sender: TObject);
    var 
      str:string;
    begin
    str := 'D:\wwz\工资管理\通知\' + inttostr(Tlabel(sender).tag)+'.txt';
     ShellExecute(Handle, nil, pchar('str'), nil, nil, SW_SHOWNORMAL);
    end;
      

  2.   

    但是我的i是一个循环的变量阿。我每一次循环到这里的就换一次我得tag可以吗??
    我试试。谢谢你了。
      

  3.   

    这样不行啊。我看了他的运行了,它是先运行主函数,然后在你点了label的时候。他才作连接的,所以他才会把i的最后一个数值给了label。
    晕阿。