每行一幅图像,右对齐,图像之间纵向间距相同,增加的图像自动显示在窗体的最后一行,窗体上放不下时加卷滚条,可以选中每幅图像分别进行处理。还有一个问题,图像的大小可否不同?能用ListView吗?还是必须用Windows API?

解决方案 »

  1.   

    用IMAGE配合其他容器控件可以实现,图象大小可以不同,你可以让图象适应IMAGE控件大小
      

  2.   

    scrollbox放到Form上,图片放到Scrollbox 上!
      

  3.   

    我说的是动态显示多幅图像,怎么把多幅图像显示到Scrollbox上?能选中每幅图像分别进行处理吗?
      

  4.   

    动态生成TIMAGE怎么贴到窗体上,而且格式右对齐怎么办?用ListView需要每幅图像大小相同,而且如何解决右对齐的问题?我的email地址是:[email protected],能解决这个问题的人有奖啊。
      

  5.   

    var
      img : TImage ;begin  img := TImage.Create ;
      try
        img.Parent := Form1 ; //把img放到窗体上
        img.LoadFromFile('your image file name') ;
        //做其他工作
      finally
        img.free ;
      end;
    end;
      
      

  6.   

    AImage1[countImage] := TImage.Create(self);
       AImage1[countImage].Width := 160;
       AImage1[countImage].Height :=160;
       AImage1[countImage].Top :=10+ (countImage div n)*180;
       AImage1[countImage].Left := 10+ (countImage mod n)*180;
    ...
       ScrollBox1.InsertControl(AImage1[countImage]);
      

  7.   

    如何选中每幅图像呢?还有div n, mod n里n是指图像总数吗?看不懂。
      

  8.   

    你可以将image定义为一个数组,如:image: array[0..10]of array[0..10]of Timage,
    我觉得定义为二维数组好一点
      

  9.   

    还是不懂,似乎可以在Scrollbox里显示了,但我查了Scrollbox,好像没法选中单个图像啊。这样还是不能用。
      

  10.   

    现在看来,对你来说ListView配合ImageList是种比较简单的实现方法,其它方法都比较复杂,大量创建TImage的实例是不现实的,这会耗费大量内存大小相同根本不是问题,你在动态绘制缩略图存入ImageList时,就可以将这个问题解决了,难道不是吗?至于右对齐,很简单
    ListView.Arrange(arAlignRight);
      

  11.   

    要选中图像,多加一个TCHECKBOX数组同动态生成的TIMAGE一一对应
    上面的n是每行n个图像