创建代码如下,此时对DisplayName 的复制是OK生效的
for I := 0 to AFieldCount - 1 do
begin
lField := TUserDataField.Create(FUserDataSet);
lField.DataSet := FUserDataSet;
lField.ID := 'TempID' + SysUtils.IntToStr(I);
lField.DisplayName := 'TempDisplayName'+ SysUtils.IntToStr(I);
lField.DataType := TDataType.dtString;
lField.Size := 32;
lField.Alignment := TAlignment.taRightJustify;
end;
当需要动态再修改时候,就不管用了,求解,代码如下:
for I := 0 to FUserDataSet.FieldCount - 1 do
TUserDataField(FUserDataSet.Fields[I]).DisplayName := FUserDataSet.Fields[I].AsString;