//使用 TFieldDef 建表: begin with ClientDataSet1.FieldDefs do begin Add('Name' , ftString, 12, True); { True 表示是必填字段 } Add('Age', ftInteger); end; ClientDataSet1.CreateDataSet; end; //使用 TField(这里是用其子类)建表: begin with TStringField.Create(Self) do begin FieldName := 'Name'; Size := 12; Required := True; { 必填字段 } DataSet := ClientDataSet1; end; with TIntegerField.Create(Self) do begin FieldName := 'Age'; DataSet := ClientDataSet1; end; ClientDataSet1.CreateDataSet; end; //混合使用(这好像就是设计时的情形): var F: TIntegerField; begin with ClientDataSet1.FieldDefs.AddFieldDef do begin Name := 'Name'; DataType := ftString; Size := 12; Required := True; CreateField(ClientDataSet1); end; with ClientDataSet1.FieldDefs.AddFieldDef do begin Name := 'Age'; DataType := ftInteger; { 指定最大值和最小值 } F := CreateField(ClientDataSet1) as TIntegerField; F.MinValue := 0; F.MaxValue := 150; end; ClientDataSet1.CreateDataSet; end;