FastReport中放置了一个MasterData和一个Picture控件,现在从一个XML文件中读取到多幅图片到strPicPath数组中,数组大小是动态分配的,可能是100,也可能是1000.然后用FastReport打印出来strPicPath:=array of string; //声明图片路径数组
setlength(strPicPath,iPicCount);//分配大小
//获取图片路径到strPicPath....此处省略
MasterDataCtrl:=TfrxMasterData(frxReport1.FindObject('MasterData'));//获取MasterData控件句柄
MasterDataCtrl.RowCount:=m_iPicCount; //设置MasterData显示次数
PictureCtrl:=TfrxPictureView(frxReport1.FindObject('Picture'));//获取Pictrue控件句柄
for i:=0 to iPicCount-1 do //循环加载图片
begin
PictureCtrl.Picture.LoadFromFile(strPicPath[i]); // 路径之前已经得到的.1.bmp,2.bmp等等
PictureCtrl.Picture.Bitmap.FreeImage;
end;为什么打印出来的图片全部都是最后一幅图片.如何解决?求解
setlength(strPicPath,iPicCount);//分配大小
//获取图片路径到strPicPath....此处省略
MasterDataCtrl:=TfrxMasterData(frxReport1.FindObject('MasterData'));//获取MasterData控件句柄
MasterDataCtrl.RowCount:=m_iPicCount; //设置MasterData显示次数
PictureCtrl:=TfrxPictureView(frxReport1.FindObject('Picture'));//获取Pictrue控件句柄
for i:=0 to iPicCount-1 do //循环加载图片
begin
PictureCtrl.Picture.LoadFromFile(strPicPath[i]); // 路径之前已经得到的.1.bmp,2.bmp等等
PictureCtrl.Picture.Bitmap.FreeImage;
end;为什么打印出来的图片全部都是最后一幅图片.如何解决?求解
procedure TForm1.frxReport1BeforePrint(Sender: TfrxReportComponent);
begin
if FileExists(inttostr(ar[ArrayDS.RecNo])+'.jpg') then
TfrxPictureView(frxReport1.FindObject('Picture1')).Picture.LoadFromFile(inttostr(ar[ArrayDS.RecNo])+'.jpg')
else
TfrxPictureView(frxReport1.FindObject('Picture1')).Picture.Assign(nil);
end;
以上代码,你去FR的DEMO文件夹里面,找PrintArray这个文件夹,
然后放几张JPG到这文件夹,改名为: 1.jpg ... 5.jpg 这样几张图片
最后加上我上面那段代码,就OK了.已测过