我在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);
为什么 运行 通不过呢?
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);
为什么 运行 通不过呢?
http://expert.csdn.net/Expert/topic/2306/2306173.xml?temp=.3048822
拿分来!!!
No.1:不应该是私有类型里的声明;
No.2:另,你需要将其加到面板上,那样不容易出错。如果你没有放的话,那就不能调用:)
而代码我已经在另一个贴子里做了演示。对于第二个问题:你点Frame右键 点Add To Platte;
//////////////////////////////
这样的语句不应该写在循环里面