|
@@ -75,6 +75,7 @@ type
|
|
TDataSource = Class;
|
|
TDataSource = Class;
|
|
TDataLink = Class;
|
|
TDataLink = Class;
|
|
TDBTransaction = Class;
|
|
TDBTransaction = Class;
|
|
|
|
+ TObjectField = class;
|
|
|
|
|
|
{ Exception classes }
|
|
{ Exception classes }
|
|
|
|
|
|
@@ -169,14 +170,19 @@ type
|
|
FCodePage : TSystemCodePage;
|
|
FCodePage : TSystemCodePage;
|
|
FDataType : TFieldType;
|
|
FDataType : TFieldType;
|
|
FFieldNo : Longint;
|
|
FFieldNo : Longint;
|
|
|
|
+ FChildDefs : TFieldDefs;
|
|
FInternalCalcField : Boolean;
|
|
FInternalCalcField : Boolean;
|
|
FPrecision : Longint;
|
|
FPrecision : Longint;
|
|
FRequired : Boolean;
|
|
FRequired : Boolean;
|
|
FSize : Integer;
|
|
FSize : Integer;
|
|
function GetCharSize: Word;
|
|
function GetCharSize: Word;
|
|
|
|
+ function GetChildDefs: TFieldDefs;
|
|
Function GetFieldClass : TFieldClass;
|
|
Function GetFieldClass : TFieldClass;
|
|
|
|
+ function GetParentDef: TFieldDef;
|
|
|
|
+ function GetSize: Integer;
|
|
procedure SetAttributes(AValue: TFieldAttributes);
|
|
procedure SetAttributes(AValue: TFieldAttributes);
|
|
procedure SetDataType(AValue: TFieldType);
|
|
procedure SetDataType(AValue: TFieldType);
|
|
|
|
+ procedure SetChildDefs(AValue: TFieldDefs);
|
|
procedure SetPrecision(const AValue: Longint);
|
|
procedure SetPrecision(const AValue: Longint);
|
|
procedure SetSize(const AValue: Integer);
|
|
procedure SetSize(const AValue: Integer);
|
|
procedure SetRequired(const AValue: Boolean);
|
|
procedure SetRequired(const AValue: Boolean);
|
|
@@ -186,19 +192,23 @@ type
|
|
ADataType: TFieldType; ASize: Integer; ARequired: Boolean; AFieldNo: Longint;
|
|
ADataType: TFieldType; ASize: Integer; ARequired: Boolean; AFieldNo: Longint;
|
|
ACodePage: TSystemCodePage = CP_ACP); overload;
|
|
ACodePage: TSystemCodePage = CP_ACP); overload;
|
|
destructor Destroy; override;
|
|
destructor Destroy; override;
|
|
|
|
+ function AddChild: TFieldDef;
|
|
procedure Assign(APersistent: TPersistent); override;
|
|
procedure Assign(APersistent: TPersistent); override;
|
|
- function CreateField(AOwner: TComponent): TField;
|
|
|
|
|
|
+ function CreateField(AOwner: TComponent; ParentField: TObjectField = nil; const FieldName: string = ''; CreateChildren: Boolean = True): TField;
|
|
|
|
+ function HasChildDefs: Boolean;
|
|
property FieldClass: TFieldClass read GetFieldClass;
|
|
property FieldClass: TFieldClass read GetFieldClass;
|
|
property FieldNo: Longint read FFieldNo;
|
|
property FieldNo: Longint read FFieldNo;
|
|
property CharSize: Word read GetCharSize;
|
|
property CharSize: Word read GetCharSize;
|
|
property InternalCalcField: Boolean read FInternalCalcField write FInternalCalcField;
|
|
property InternalCalcField: Boolean read FInternalCalcField write FInternalCalcField;
|
|
|
|
+ property ParentDef: TFieldDef read GetParentDef;
|
|
property Required: Boolean read FRequired write SetRequired;
|
|
property Required: Boolean read FRequired write SetRequired;
|
|
Property Codepage : TSystemCodePage Read FCodePage;
|
|
Property Codepage : TSystemCodePage Read FCodePage;
|
|
Published
|
|
Published
|
|
property Attributes: TFieldAttributes read FAttributes write SetAttributes default [];
|
|
property Attributes: TFieldAttributes read FAttributes write SetAttributes default [];
|
|
property DataType: TFieldType read FDataType write SetDataType;
|
|
property DataType: TFieldType read FDataType write SetDataType;
|
|
|
|
+ property ChildDefs: TFieldDefs read GetChildDefs write SetChildDefs stored HasChildDefs;
|
|
property Precision: Longint read FPrecision write SetPrecision default 0;
|
|
property Precision: Longint read FPrecision write SetPrecision default 0;
|
|
- property Size: Integer read FSize write SetSize default 0;
|
|
|
|
|
|
+ property Size: Integer read GetSize write SetSize default 0;
|
|
end;
|
|
end;
|
|
TFieldDefClass = Class of TFieldDef;
|
|
TFieldDefClass = Class of TFieldDef;
|
|
|
|
|
|
@@ -206,13 +216,14 @@ type
|
|
|
|
|
|
TFieldDefs = class(TDefCollection)
|
|
TFieldDefs = class(TDefCollection)
|
|
private
|
|
private
|
|
|
|
+ FParentDef: TFieldDef;
|
|
FHiddenFields : Boolean;
|
|
FHiddenFields : Boolean;
|
|
function GetItem(Index: Longint): TFieldDef;
|
|
function GetItem(Index: Longint): TFieldDef;
|
|
procedure SetItem(Index: Longint; const AValue: TFieldDef);
|
|
procedure SetItem(Index: Longint; const AValue: TFieldDef);
|
|
Protected
|
|
Protected
|
|
Class Function FieldDefClass : TFieldDefClass; virtual;
|
|
Class Function FieldDefClass : TFieldDefClass; virtual;
|
|
public
|
|
public
|
|
- constructor Create(ADataSet: TDataSet);
|
|
|
|
|
|
+ constructor Create(AOwner: TPersistent);
|
|
// destructor Destroy; override;
|
|
// destructor Destroy; override;
|
|
Function Add(const AName: string; ADataType: TFieldType; ASize, APrecision: Integer; ARequired, AReadOnly: Boolean; AFieldNo : Integer; ACodePage:TSystemCodePage) : TFieldDef; overload;
|
|
Function Add(const AName: string; ADataType: TFieldType; ASize, APrecision: Integer; ARequired, AReadOnly: Boolean; AFieldNo : Integer; ACodePage:TSystemCodePage) : TFieldDef; overload;
|
|
Function Add(const AName: string; ADataType: TFieldType; ASize: Word; ARequired: Boolean; AFieldNo : Integer) : TFieldDef; overload;
|
|
Function Add(const AName: string; ADataType: TFieldType; ASize: Word; ARequired: Boolean; AFieldNo : Integer) : TFieldDef; overload;
|
|
@@ -228,6 +239,7 @@ type
|
|
Function MakeNameUnique(const AName : String) : string; virtual;
|
|
Function MakeNameUnique(const AName : String) : string; virtual;
|
|
Property HiddenFields : Boolean Read FHiddenFields Write FHiddenFields;
|
|
Property HiddenFields : Boolean Read FHiddenFields Write FHiddenFields;
|
|
property Items[Index: Longint]: TFieldDef read GetItem write SetItem; default;
|
|
property Items[Index: Longint]: TFieldDef read GetItem write SetItem; default;
|
|
|
|
+ property ParentDef: TFieldDef read FParentDef;
|
|
end;
|
|
end;
|
|
TFieldDefsClass = Class of TFieldDefs;
|
|
TFieldDefsClass = Class of TFieldDefs;
|
|
|
|
|
|
@@ -300,6 +312,8 @@ type
|
|
FOnSetText: TFieldSetTextEvent;
|
|
FOnSetText: TFieldSetTextEvent;
|
|
FOnValidate: TFieldNotifyEvent;
|
|
FOnValidate: TFieldNotifyEvent;
|
|
FOrigin : String;
|
|
FOrigin : String;
|
|
|
|
+ FParentField: TObjectField;
|
|
|
|
+ FProviderFlags : TProviderFlags;
|
|
FReadOnly : Boolean;
|
|
FReadOnly : Boolean;
|
|
FRequired : Boolean;
|
|
FRequired : Boolean;
|
|
FSize : integer;
|
|
FSize : integer;
|
|
@@ -307,7 +321,6 @@ type
|
|
FValueBuffer : Pointer;
|
|
FValueBuffer : Pointer;
|
|
FValidating : Boolean;
|
|
FValidating : Boolean;
|
|
FVisible : Boolean;
|
|
FVisible : Boolean;
|
|
- FProviderFlags : TProviderFlags;
|
|
|
|
function GetIndex : longint;
|
|
function GetIndex : longint;
|
|
function GetLookup: Boolean;
|
|
function GetLookup: Boolean;
|
|
procedure SetAlignment(const AValue: TAlignMent);
|
|
procedure SetAlignment(const AValue: TAlignMent);
|
|
@@ -385,6 +398,7 @@ type
|
|
procedure SetNewValue(const AValue: Variant);
|
|
procedure SetNewValue(const AValue: Variant);
|
|
procedure SetSize(AValue: Integer); virtual;
|
|
procedure SetSize(AValue: Integer); virtual;
|
|
procedure SetParentComponent(AParent: TComponent); override;
|
|
procedure SetParentComponent(AParent: TComponent); override;
|
|
|
|
+ procedure SetParentField(AField: TObjectField); virtual;
|
|
procedure SetText(const AValue: string); virtual;
|
|
procedure SetText(const AValue: string); virtual;
|
|
procedure SetVarValue(const AValue: Variant); virtual;
|
|
procedure SetVarValue(const AValue: Variant); virtual;
|
|
public
|
|
public
|
|
@@ -461,6 +475,7 @@ type
|
|
property LookupResultField: string read FLookupResultField write FLookupResultField;
|
|
property LookupResultField: string read FLookupResultField write FLookupResultField;
|
|
property Lookup: Boolean read GetLookup write SetLookup stored false; deprecated;
|
|
property Lookup: Boolean read GetLookup write SetLookup stored false; deprecated;
|
|
property Origin: string read FOrigin write FOrigin;
|
|
property Origin: string read FOrigin write FOrigin;
|
|
|
|
+ property ParentField: TObjectField read FParentField write SetParentField;
|
|
property ProviderFlags : TProviderFlags read FProviderFlags write FProviderFlags;
|
|
property ProviderFlags : TProviderFlags read FProviderFlags write FProviderFlags;
|
|
property ReadOnly: Boolean read FReadOnly write SetReadOnly;
|
|
property ReadOnly: Boolean read FReadOnly write SetReadOnly;
|
|
property Required: Boolean read FRequired write FRequired;
|
|
property Required: Boolean read FRequired write FRequired;
|
|
@@ -1092,6 +1107,25 @@ type
|
|
property AsGuid: TGUID read GetAsGuid write SetAsGuid;
|
|
property AsGuid: TGUID read GetAsGuid write SetAsGuid;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+{ TObjectField }
|
|
|
|
+
|
|
|
|
+ TObjectField = class(TField)
|
|
|
|
+ private
|
|
|
|
+ FFieldFields: TFields;
|
|
|
|
+ protected
|
|
|
|
+ function GetAsVariant: Variant; override;
|
|
|
|
+ function GetFieldCount: Integer;
|
|
|
|
+ function GetFields: TFields; virtual;
|
|
|
|
+ function GetFieldValue(AIndex: Integer): Variant; virtual;
|
|
|
|
+ procedure SetFieldValue(AIndex: Integer; const AValue: Variant); virtual;
|
|
|
|
+ procedure SetParentField(AField: TObjectField); override;
|
|
|
|
+ procedure SetVarValue(const AValue: Variant); override;
|
|
|
|
+ public
|
|
|
|
+ property FieldCount: Integer read GetFieldCount;
|
|
|
|
+ property Fields: TFields read GetFields;
|
|
|
|
+ property FieldValues[AIndex: Integer]: Variant read GetFieldValue write SetFieldValue; default;
|
|
|
|
+ end;
|
|
|
|
+
|
|
{ TIndexDef }
|
|
{ TIndexDef }
|
|
|
|
|
|
TIndexDefs = class;
|
|
TIndexDefs = class;
|