使用FastReport装载图片问题!

liuhuan992 2009-08-14 08:35:37
procedure TForm1.frxReport1Preview(Sender: TObject);
var filename:string;
begin
TRY
filename:=ExtractFilePath(Paramstr(0))+'fhclPict\'+cspc+'.wmf';
chart1.SaveToMetafile(filename) ;
//添加至报表中


(frxreport1.FindObject('cspicture') as Tfrxpictureview ).Picture.LoadFromFile(filename);//程序运行至此行就出现下图所示错误提示
EXCEPT
END;





请问各位老大,此语句运行还有何未声明或不当的地方吗?
...全文
123 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuhuan992 2009-08-14
  • 打赏
  • 举报
回复
不好意思,各位前辈,刚掉阴沟里了,呵呵,
在此谢过了。
liuhuan992 2009-08-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zqdue 的回复:]
    JpgPath := SysPath + '\Temp.bmp';
    t1 := TfrxPictureView(frxReport1.FindObject('Picture1'));
    if t1 <> nil then t1.Picture.LoadFromFile(JpgPath);
[/Quote]


你所使用的上述语句跟我所使用的没有什么不同呀?问题是我的怎么得出的NIL,在FASTREPORT中,我有cspicture图片控件呀,怎么会得出的是NIL值呢?
zqdue 2009-08-14
  • 打赏
  • 举报
回复
procedure TfmBaseReport.acShowReportExecute(Sender: TObject);
var
Stream : TMemoryStream;
JpgPath : string;
t1 : TfrxPictureView;
begin
if (VarIsNull(qMasterfReport.Value)) or (qMasterfReport.Value = '') then
begin
ShowMessage(你选择的报表没有内容!);
Exit;
end
else
begin
//引入报表
Stream := TMemoryStream.Create;
TBlobField(qMaster.FieldByName('fReport')).SaveToStream(Stream);
Stream.Position := 0;
frxReport1.LoadFromStream(Stream);
Stream.Free;
//引入图表
JpgPath := SysPath + '\Temp.bmp';
t1 := TfrxPictureView(frxReport1.FindObject('Picture1'));
if t1 <> nil then t1.Picture.LoadFromFile(JpgPath);
//预览报表
frxReport1.ShowReport;
end;
end;
liuhuan992 2009-08-14
  • 打赏
  • 举报
回复
判断了下,加上了句

if TFRXpictureview(frxreport1.FindObject('cspicture'))<>nil then
(frxreport1.FindObject('cspicture') as Tfrxpictureview ).Picture.LoadFromFile(filename);

虽说不报错了,但也没有图片了呀,
说明,一直就是NIL值
bdmh 2009-08-14
  • 打赏
  • 举报
回复
先判断frxreport1.FindObject('cspicture')是否为nil

5,390

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧