1、想在程序中打印图片。问题是图片的尺寸不一定。我想通过动态的方式来实现,对于比较小的图片就居中显示,image的大小正好也是图片的尺寸。对于比较大的图片,就固定一个大小。
2、以前做的报表都是从数据库中提取的数据,多条时设置band为明细就可以自动分页来显示。但是如果只是去数据库中的一个字段(内容较多,可能几千个字)。一页不可能打全,要求能转到第二页去继续显示,这种情况需要什么设置?band的类型设置为什么样子的?
谢谢

解决方案 »

  1.   

    第一个问题。
    你可以用两个图片框,第一个的Visible设为Fase,AutoSize为True,第二个为True,AutoSize为False,也就是你在屏幕上看到的。
    程序中从数据库里面读出图片后,放在第一个image里面显示,然后判断图像的宽度和高度是否大于你需要的尺寸,如果大于,则将图片压缩到你所需要的尺寸,Copy到第二个图片框中。否则直接Copy到第二个图片框中。代码如下:
    var
      R:TRect;
    begin
    dlgOpenPhoto.Execute;
    if DlgOpenphoto.FileName='' then exit;
    imgSrc.Picture.LoadFromFile(dlgOpenPhoto.FileName);
    imgSrc.Refresh;
    R.Left:=0;R.Top:=0;R.Right:=PHOTOWIDTH;R.Bottom:=PHOTOHEIGHT;
    imgPhoto.Picture.Graphic:=nil;
      if (ImgSrc.Width>PHOTOWIDTH) then
        imgPhoto.Canvas.StretchDraw(R,imgSrc.Picture.graphic)
      else
        imgPhoto.Picture.Assign(imgSrc.Picture);
    end;PHOTOWIDTH PHOTOHEIGHT是你定义的图片大小