我在定义TmemDataset的字段时遇到了一些问题。 我想使用memDataset和一些文件来保存和操作一个小型个人项目的数据。
这是我用来创建字段的代码snipet:
function createField(fieldName, fieldLabel : String ; fieldType : TFieldType;
group : Integer) : TField;
begin
Result := TField.Create(nil);
Result.FieldName := fieldName;
Result.SetFieldType(fieldType);
Result.FieldKind := fkData;
if fieldLabel = '' then
Result.DisplayLabel := fieldName
else
Result.DisplayLabel := fieldLabel;
result.DataSet := memDataset;
Result.Tag:= group;
end;
电话很简单:
createField('FIELDNAME', 'FieldDisplay', ftInteger, 2);
不幸的是,这并没有正确设置字段类型并且之后危及整个数据编辑。我得到ftUnknown
字段类型。如何为我的字段设置正确的类型?
我被告知另一种做事方式:
procedure createField(fieldName, fieldLabel : String ;
fieldType : TFieldType; group : Integer);
begin
with memDataset do
begin
if fieldType = ftString then
FieldDefs.Add(fieldName, fieldType, 80, False)
else
if fieldType = ftWideString then
FieldDefs.Add(fieldName, fieldType, 512, False)
else
FieldDefs.Add(fieldName, fieldType, 0, False);
if fieldLabel = '' then
FieldDefs.Items[FieldCount].DisplayName := fieldName
else
FieldDefs.Items[FieldCount].DisplayName := fieldLabel;
// No other way
// medCharacter.FieldDefs.Items[FieldCount].Tag := group;
end;
end;
除了我丢失了一些对我的项目非常重要的信息:字段显示名称,我找到了设置的方法,但我找不到设置标记的方法。