edit比较多,不可能逐一clear.是不是要拿ComponentCount来循环作clear?方法如何?

解决方案 »

  1.   

    for i:=0 to ComponentCount-1 do
        begin
          if (Components[i] is TEdit) then
            (Components[i] as TEdit).Text:='';
          if (Components[i] is TMemo) then
            (Components[i] as TMemo).Lines.Clear;
        end;
      

  2.   

    楼上的方法是对整个窗体内的.
    改成这样子吧.
    With TabSheet1 Do 
    for i:=0 to ComponentCount-1 do
        begin
          if (Components[i] is TEdit) then
            (Components[i] as TEdit).Text:='';
          if (Components[i] is TMemo) then
            (Components[i] as TMemo).Lines.Clear;
        end;
      

  3.   

    with Tabsheet do 
       for i:=0 to ComponentCount-1 do
          begin
             if (Components[i] is TEdit) then
                (Components[i] as TEdit).Text:='';
        end;
      

  4.   

    对整个窗体内的操作时可以的,但是加了with Tabsheet do 之后就不行,
    showmessage(inttostr(TabSheet1.ComponentCount));
    竟然显示0!就是说找不出在他上面的Component,怎么解决?
      

  5.   

    With TabSheet1 Do 
    for i:=0 to ControlCount-1 do
        begin
          if (Controls[i] is TEdit) then
            (Controls[i] as TEdit).Text:='';
    end;
      

  6.   

    遍历控件..如果为TEDIT..则..SENDER.text:='';就可以了..
      

  7.   

    问题是With TabSheet1 Do 找不到任何控件!
      

  8.   

    兄弟,你没注意看我的贴子吧用Controls
    With TabSheet1 Do 
    for i:=0 to ControlCount-1 do
        begin
          if (Controls[i] is TEdit) then
            (Controls[i] as TEdit).Text:='';
    end;
      

  9.   

    不好意思,吸毒,可以了,Controls和Components有什么区别呢?
    加多一点要求,TabSheet1放在PageControl1下面,如果有很多TabSheet,
    怎么用With PageControl1 Do 批量做呢?
      

  10.   

    var
      intCount,intTmp:integer;
    begin
      with PageControl1 do
      begin
        for intTmp:=0 to ControlCount-1 do
        begin
          if (Controls[intTmp] is TTabSheet) then
          begin
            with (Controls[intTmp] as TTabSheet) do
            begin
              for intCount:=0 to ControlCount-1 do
              begin
                if (Controls[intCount] is TEdit) then
                  (Controls[intCount] as TEdit).Clear;
              end;
            end;
          end;
        end;
      end;
    end;