我用scrollbox和一个button做了一个显示大量图片的模块.查询运行的步骤是:
先通过点button 查询数据库的记录,然后在scrollbox里自动创建image控件,有多少条记录创建多少个iamge控件.现在需要解决的问题是,如何将scrollbox里的image控件清空.比如,我第一次,查询到8条记录,而第二次查询到6条记录,但是只更新了前面六条,后面两条依然有显示.这个怎么解决.我想在每次查询前先清空scrollbox里的控件,都重新创建.

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i : integer;
    begin
      for i := 0 to ComponentCount-1 do
      begin
       if (Components[i] is TImage)  then
         TImage(Components[i]).Picture := nil;
      end;end;
      

  2.   

    TImage(Components[i]).Picture := nil;
    也是一个不错的方法,这样Image控件还在,但是由于没图,还是看不到的,效果一样
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      i : integer;
    begin
      for i := 0 to ComponentCount-1 do
      begin
       if (Components[i] is TImage)  then
         TImage(Components[i]).Picture := nil;
      end;
      //在这里重新赋值
    end;
      

  4.   

    var
      I: Integer;
    begin
      with ScrollBox1 do
        for I := ControlCount - 1 downto 0 do
          if Controls[I] is TImage then
            Controls[I].Free;
    end;