我用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.   

    你动态创建的控件的parent是什么
    我给你一个例子吧:
    比如:在一个Panel上创建一个Edit,然后在删除掉;
    创建:
       Edit1 := TEdit.Create(self);
       Edit1.parent := panel1;
       Edit1.tag := 555;
    删除:
      with panel1 do
       for i:=0 to ControlCount-1 do
        begin
         if (Controls[i].tag = 888) and (Controls[i] is TEdit) then
           (Controls[i] as TEdit).free;
       end;
      

  3.   

    如果还不行,在free之后加上:=nil