随便放入几个,把其中某个的text设成空,测试:procedure TForm1.Button1Click(Sender: TObject);
var
        i:integer;
begin
        for i:=0 to self.ControlCount-1 do
        begin
                if self.Controls[i] is Tedit then
                begin
                        if (self.Controls[i] as Tedit).Text='' then
                        begin
                                showmessage(self.Controls[i].Name + ' 不能为空');
                        end;
                end;
        end;
end;

解决方案 »

  1.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := 0 to ComponentCount - 1 do
        if (Components[I] is TEdit) and (TEdit(Components[I]).Text = '') then
          ShowMessage(Components[I].Name + '不能为空');
    end;
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
      I: Integer;
    begin
      for I := 0 to ComponentCount - 1 do
        if (Components[I] is TEdit) and (TEdit(Components[I]).Text = '') then
          ShowMessage(Components[I].Name + '不能为空');
    end;
      

  3.   

    可能有些Edit你不需要判断,所以可以这样做:
    1 将你需要判断的Edit的tag设置为一个标志值 比如1024
    2 for i:=0 to ControlCount-1 do
        if Controls[i].tag=1024 then
          if TEdit(Controls[i]).Text='' then ShowMessage('...');
      用Controls来遍历可以忽略那些非可视控件,如果你把这些Edit放在一个Panel
      里面,还可以用Panel1.ControlCount来遍历那些只包含在Panel1中的Edit
      速度岂不更快?
      

  4.   

    但如果我要实现当OnEnter时,Edit变蓝色,OnExit时,Edit又回过来
    成白色,要怎么做呢?
      

  5.   

    写在其中一个Edit事件中
    其他时间也连到此事件用Sender区分
      

  6.   

    我菜鸟啦,sender不太会用。觉得好像用不到。
    我会加分的。
      

  7.   

    procedure TForm1.Edit1Enter(Sender: TObject);
    begin
            (sender as tedit).Color:=clblue;
    end;
      

  8.   

    可以在OnEnter和OnExit事件里写代码。
        自己写过程的吧,让所有的edit共享一个过程。这样方便一点,不必为每个控间写代码。
        给你一个网页的地址,自己看看吧。http://www.csdn.net/dev/Delphi/