我有40个DBEdit,现在想读取每个DBEdit的关联字段名(FieldName),用一个循环该怎么写?
强制类型转换TDBEdit(FindComponent('DBEdit'+intToStr(i))).Field.FieldName;好像会出错??
谢谢!!

解决方案 »

  1.   

    //需要做保护~~
    var
      I: Integer;
      vDBEdit: TDBEdit;
    begin
      for I := 1 to 40 do
      begin
        TComponent(vDBEdit) := FindComponent(Format('DBEdit%d', [I]));
        if Assigned(vDBEdit) and Assigned(vDBEdit.Field) then
          { TODO : 处理vDBEdit.Field.FieldName };
      end;
    end;
      

  2.   

    不错才怪。如下写:
    var
      i:integer;
    begin
      for i:=0 to 40 do
      begin
        if Components[i] is TDBEdit then
          ShowMessage(TDBEdit(Components[i]).DataField);
      end;
    end;
    如果报错你可以找我。^_^