一个form上有50个edit
问1:如何以最有效的方法清空50个edit中的内容
问2:如何以最有效的方法判断50个edit均不为空

解决方案 »

  1.   

    var
      i: Integer;
      NotEmpty: Boolean;
    begin
      IsEmpty := true;
      //Clear
      for i := 0 to self.ControlCount - 1 do
        if self.Controls[i] is TEdit then
          TEdit(Controls[i]).Clear;
      //Judge  
      for i := 0 to self.ControlCount - 1 do
        if self.Controls[i] is TEdit then
          if TEdit(Controls[i]).Text = '' then
          begin
            NotEmpty := false;
            Break;
          end;
    end;
      

  2.   

    把50个EDIT放在一个容器里,然后就对它们操作,方法就和楼2的一样
      

  3.   

    "self.ControlCount"是什么意思,哪位大哥能告诉我是什么意思。
      

  4.   

    self.ControlCount
    就是这个窗体中所有控件的个数self.Controls[i] is TEdit
    就是这个控件是否为TEdit控件
      

  5.   

    delphi 帮助上有关于controlcount的内容。
      

  6.   

    self.ControlCount
    就是这个窗体中所有控件的个数
    --------------
    上面的错,ControlCount是控件XX.Parent:=self;的个数
    比如:Form里面有个panel,panel上面有个Edit,那么self.ControlCount=1,不是2
    ---------------------------------
    self.Controls[i] is TEdit
    就是这个控件是否为TEdit控件
    --------------
    上面的错,是 只要self.Controls[i]是TEdit子类或者TEdit类的对象,那么上面的都为真
    ------------------------------
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, ExtCtrls;type
      TForm1 = class(TForm)
        Panel1: TPanel;
        Button1: TButton;
        Button2: TButton;
        Panel2: TPanel;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;  TMyEdit=class(TEdit)
      public
        function g:string;
      end;
      TMyEditEX=class(TEdit)
      public
        function gg:string;
      end;
    var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
     caption:=inttostr(controlcount);end;procedure TForm1.Button2Click(Sender: TObject);
    var
      myEdit:TMyEdit;
      MyEditEX:TMyEditEX;
    begin
      myEdit:=TMyEdit.Create(self);
      myEdit.Parent:=self;
      MyEditEX:=TMyEditEX.Create(self);
      MyEditEX.Parent:=self;
    end;procedure TForm1.Button3Click(Sender: TObject);
    var
      i:integer;
    begin
      for i := 0 to ControlCount-1 do
      begin
        if Controls[i] is TEdit then
          showmessage(Controls[i].ClassName);  end;end;{ TMyEdit }function TMyEdit.g: string;
    begin
      Result:='gazo'
    end;{ TMyEditEX }function TMyEditEX.gg: string;
    begin
      Result:='cll007'
    end;end.
      

  7.   

    var
    i:integer;
    NotEmpty :boolean;
    begin
    ........//全部清空
    for i:=1 to 50 do
      begin
        (self.FindComponent('Edit'+inttostr(i)) as TFlatEdit).Text:='';
      end;
    ........//判断不为空
    NotEmpty:=true;
     for i:=1 to 50 do
      begin
        if (self.FindComponent('Edit'+inttostr(i)) as TFlatEdit).Text:='' then 
          NotEmpty:=false;
      end;
    if NotEmpty then
      showmessage('全部都不为空!')
    else
      showmessage('全部都不为空');
    end;
    end;
      

  8.   

    同意一楼的
    把50个EDIT放在一个容器里,例如Panel1,把self.ControlCount 改为Panel1.ControlCount