我在scrollbox中动态添加图片,但是添加后的图片的距离一旦超过出现滚动条后就乱了,不知怎么解决?code:var
gpic:TImage;begin
if opendialog1.Execute then
begin
 gpic:=timage.Create(scrollbox1);
 gpic.parent:=scrollbox1;
 gpic.Width:=137;
 gpic.Height:=121;
 gpic.Left:=40;
 gadd:=gadd+1;
 if gadd=1 then
  gpic.Top:=30  else
 gpic.Top:=30+150*(gadd-1);
 showmessage(inttostr(gpic.Top));
 gpic.Picture.LoadFromFile(opendialog1.filename);
end;

解决方案 »

  1.   

    谢谢,xinshiji,第二个属性,没有呀?
      

  2.   

    竹子,谢谢,我用的是delphi6.问题是我在添加图片的时候只要出现scrollbox的滚动条时,在添加
    图片时就出现图片间距问题
      

  3.   

    我刚才在delphi7里面测试以下,情况是这样,添加多个图片在出现滚动条后可以在后面接着添加两个图片,再添加时又出现图片间距混乱情况,不知道是不是delphi的bug
      

  4.   

    是这样的,出现间距不均匀是因为你每次添加图片时,gpic.Top的值是相对于scrollbox当前的上沿的,你第一次无论添加多少,只要不滚动scrollbox,都不会出错,出错是因为后来添加图片时scrollbox的滚动条不在初始位置,解决这个问题:让scrollbox滚动到初始位置即可。
    我没有找到让scrollbox滚动的方法或函数,用了个比较低级的解决方法:
    在if前加上:
    ScrollBox1.AutoScroll:=false;
    ScrollBox1.AutoScroll:=true;
    就没问题了。