for i:=0 to zmkquery.recordcount-1 do
   begin
      pic[i]:=timage.Create(self);
      pic[i].Parent:=scrollbox1;
      pic[i].Picture.LoadFromFile(zmkquery.fieldbyname('zmktb').AsString);
      pic[i].Top:=10+i*50;
      pic[i].Left:=scrollbox1.Width-pic[i].Width;
      pic[i].OnClick:=czclick;
      zmkquery.Next;
   end;
在pic[i].onclick:=时 我如何将字符转换以便给onclick事件付值,或提供思路。

解决方案 »

  1.   

    就是说,我动态创建了控件,要动态的付与他onclick事件,但我在循环里做的,需要一个转换,
      

  2.   

    每一个pic[i]的onclick 事件是不同的,比如click1,click2等,在我上面的循环中如何付值
      

  3.   

    strczclick...要转换成 procedure FormClick(Sender: TObject);type
      TPro  = procedure Click of object;var
      vpro :array [0..10] of  TPro;
    .....if strczclick='pro0'
      pic[i].OnClick := vpro[0];
    if strczclick='pro1'
      pic[i].OnClick := vpro[1];===========
    这样子....差不多可以实现吧...  
      

  4.   

    这样肯定行,先谢谢了,我想能不能直接用tnotifyevent呀,还望不吝赐教,在谢谢了,或是将字符转化成过程类型的。
      

  5.   

    定义以下数组:
    var clk :array[1..10] of TNotifyEvent;for i:=1 to 10 do
    begin
      .....
      pic[i].OnClick := clk[i];
      ....
    end;