在一个ScrollBox1里动态生成label,用来显示记录标题。假如循环第一次有两条记录,那么会自动生成两个label,如果循环第二次只有一条记录,请问怎样才能清除第一次生成的label后,再显示这次的一条记录?

解决方案 »

  1.   

    那你就用条件语句判断一下了
    有一条的话label1.visible := True;          label1.visible:= false;
    或者你用free了
      

  2.   

    将创建的Label放到一个动态数组(Array of TLabel)啊。下次创建时,对于已经有的Label,只需要更改它的Caption;已有的不够则创建;有多余则Free吊。————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  3.   

    //先Free all Labelfor i:=0 to ScrollBox1.Control1.Count-1 do
      if ScrollBox1.Control1[i] is TLabel then
        (ScrollBox1.Control1[i] as TLabel).Free;
      
    //再动态生成