我在frame(frame_jzmx_pic)上有一个函数 ,如下:
procedure Tframe_jzmx_pic.xx(K : Integer);
var
  I : Integer;
begin
  ys := k;
  if frm_dm_n.DataModule1.adoqry_jzmx_pic.RecordCount - 50 * k > 0 then
  begin
    for i := 50 * (k-1) + 1 to 50 * k do
    begin
      frm_dm_n.DataModule1.adoqry_jzmx_pic.MoveBy(50 * (k-1));
      TImage(FindComponent('image'+inttostr(k+0))).Picture.LoadFromFile(frm_dm_n.DataModule1.adoqry_jzmx_pic.fieldByName('PicPath').AsString);
      frm_dm_n.DataModule1.adoqry_jzmx_pic.Next;
    end;
  end
  else
  begin
    for i :=  1 to frm_dm_n.DataModule1.adoqry_jzmx_pic.RecordCount - 50 * (k-1)do
    begin
      frm_dm_n.DataModule1.adoqry_jzmx_pic.MoveBy(50 * (k-1));
      TImage(FindComponent('image'+inttostr(i))).Picture.LoadFromFile(frm_dm_n.DataModule1.adoqry_jzmx_pic.fieldByName('PicPath').AsString);
      frm_dm_n.DataModule1.adoqry_jzmx_pic.Next;
    end;
  end;
end;
然后,在Form1上调用这个函数:
 frame_jzmx_pic.xx(1);
为什么 运行 通不过呢?

解决方案 »

  1.   

    解决后来这里领分:
    http://expert.csdn.net/Expert/topic/2306/2306173.xml?temp=.3048822
      

  2.   

    Tframe_jzmx_pic.create(self).xx(1);
     拿分来!!!
      

  3.   

    注意,你调用的时候,应该注意以前几点:
    No.1:不应该是私有类型里的声明;
    No.2:另,你需要将其加到面板上,那样不容易出错。如果你没有放的话,那就不能调用:)
    而代码我已经在另一个贴子里做了演示。对于第二个问题:你点Frame右键 点Add To Platte;
      

  4.   

    frm_dm_n.DataModule1.adoqry_jzmx_pic.MoveBy(50 * (k-1));
    //////////////////////////////
    这样的语句不应该写在循环里面