我自己写的一个函数,能清空大部分控件:procedure ClearObj(Sender:TObject);
var i:integer;
begin
  if Sender is TEdit then
    TEdit(Sender).Text:='';
  if Sender is TComboBox then
    TComboBox(Sender).Text:='';
  if Sender is TMemo then
    TMemo(Sender).Text:='';
  if Sender is TDateTimePicker then
  begin
    TDateTimePicker(Sender).Date:=date;
    if TDateTimePicker(Sender).ShowCheckbox then
       TDateTimePicker(Sender).Checked:=false;
  end;
  if Sender is TCheckBox then
    TCheckBox(Sender).Checked:=true;
  if Sender is TPanel then
  begin
    for i:=0 to TPanel(Sender).ControlCount-1 do
     ClearObj(TPanel(Sender).Controls[i]);  
  end;
  if Sender is Tgroupbox then
  begin
    for i:=0 to TGroupbox(Sender).ControlCount-1 do
     ClearObj(Tgroupbox(Sender).Controls[i]);  
  end;   
end;

解决方案 »

  1.   

    var
      loop: Integer;
    begin
      for loop := 0 to Form1.ComponentCount-1 do
      begin
        if Form1.Components[loop] is TEdit then
          TEdit(Form1.Components[loop]).Text := ''
        else if Form1.Components[loop] is TComboBox then
          TComboBox(Form1.Components[loop]).Itemindex := -1
        else if Form1.Components[loop] is TDBLookupComboBox then
          TDBLookupComboBox(Form1.Components[loop]).ListFieldIndex := -1;
      end;
    end;
      

  2.   

    var
      loop: Integer;
    begin
      for loop := 0 to Form1.ComponentCount-1 do
      begin
        if Form1.Components[loop] is TEdit then
          TEdit(Form1.Components[loop]).Text := ''
        else if Form1.Components[loop] is TComboBox then
          TComboBox(Form1.Components[loop]).Itemindex := -1
        else if Form1.Components[loop] is TDBLookupComboBox then
          TDBLookupComboBox(Form1.Components[loop]).ListFieldIndex := -1;
      end;
    end;
      

  3.   

    var
      loop: Integer;
    begin
      for loop := 0 to Form1.ComponentCount-1 do
      begin
        if Form1.Components[loop] is TEdit then
          TEdit(Form1.Components[loop]).Text := ''
        else if Form1.Components[loop] is TComboBox then
          TComboBox(Form1.Components[loop]).Itemindex := -1
        else if Form1.Components[loop] is TDBLookupComboBox then
          TDBLookupComboBox(Form1.Components[loop]).ListFieldIndex := -1;
      end;
    end;