我在form1中经常会运用类似如下代码:
  procedure isinsert;
       begin
              if edit1.text='' then
                        begin
                           showmessage('1不能为空');
                           activecontrol:=edit1;
                            abort;
               if edit2.text='' then
                          begin
                             showmessage('2不能为空');
                           activecontrol:=edit1;
                            abort;
                            end;
                   if edit3.text='' then
                          begin
                             showmessage('3不能为空');
                           activecontrol:=edit1;
                            abort;
                            end;
end;   各位仁兄,可否将用一个如:
   procedure 
 isinsert (edit1.text,edit2.text,edit3.text  .....);变成一个通用.

解决方案 »

  1.   

    b4楼主,从来没有发过大于10分的帖子,汗阿for i:=0 to form1.controlcount-1 do
    begin
      if form1.controls[i] is Tedit then 
        if (form1.controls[i] as Tedit).text='' then 
          begin
            showmessage('不能为空!');
            activecontrol:=form1.controls[i];
            exit;
          end;
    end;
    end;
      

  2.   

    我也来B4一下
     for i := 0 to ComponentCount - 1 do
          begin
             if Components[i].ClassName = 'TEdit' then
                (Components[i] as TEdit).ENABLED := true;      end;
      

  3.   

    不是楼上二位大哥的意思,我只是举个不能为空的例子.并不在同一单元。如果一个from1 : isinsert(edt1.text,edt2.txt);
    如果一个form2:  isinsert(edit3.text,edit1.text,edit2.text,edit6.text);
    如果一个form3:  isinsert(edit1.text,edit2.text,edit3.text,edit8.text);help me!
      

  4.   

    自定义一个TMyEdit控件,添加一个 AllowEditEmpty 属性, 再做一个通用函数搜索窗体内控件,如果为TMyEdit控件,再判断AllowEditEmpty 属性是否为True,来进行验证。
      

  5.   

    楼上的注意不错:
      TMyEdit=class(TEdit)
       .
       .
       .
     Procedure Insert()
      .
      .
      .
    Procedure TMyEdit.Insert()
      .
      .
      

  6.   

    isinsert(s1,s2,s3,s6,s3.....)中的参有可能是一个有可能是5个都原理一样的.
    怎样写,马上结
      

  7.   

    可以采用动态数组的方式处理。procedure isinsert(AEdits: array of TEdit);
    var
      Index: Integer;
    begin
      for Index := 0 to Length(AEdits) - 1 do
      begin
        .... // 在这里加判断代码
      end;
    end;调用的时候采用下面的语法:
    isinsert([Edit1, Edit2]);  如果只是判断文本就用字符串数组
      

  8.   

    bhbcsdn(bhbcsdn) 的方法最好。
    在有大量EDIT这样的控件时(比如注册,且不能为空的情况),很方便!如果用动态数组的话,什么时候向其中增加元素呀?