3
如果之前询问过问题,表示歉意。我有一些组件的定义如下(如果它不对,请指导我,因为我是初学者)。我想要的是枚举派生组件的所有已发布属性,特别是子属性。我能够枚举属性的名称,但是,是否可以枚举发布的属性,我可以在执行程序期间访问元素(如在子属性中)?像getfirst/getnext一样一个一个地返回属性,直到最后?在Delphi中枚举发布的属性和子属性
type
TStringArray = array of string;
TGenericColumnDef = class(TPersistent)
private
fColumnName : String;
fColumnNumber : Integer;
fColumnDisplay : string;
fColumnDescription : string;
fColumnDataType : integer;
fColumnEditorType : integer;
// fMyEvent: TNotifyEvent;
protected
public
constructor create(AOwner: TComponent); virtual;
published
property ColumnName : String read fColumnName write fColumnName;
property ColumnNumber : integer read fColumnNumber write fColumnNumber;
//property MyEvent: TNotifyEvent read fMyEvent write fMyEvent;
end;
TGenericAsset = class(Tcomponent) //TPersistent
private
{ Private declarations }
fCiteID : TGenericColumnDef;
fCiteType : TGenericColumnDef;
fTitle : TGenericColumnDef;
fAuthor : TGenericColumnDef;
fPropertyCount : integer;
function GetPropertyCount : integer;
function GetNextPropertyIndex: integer;
property CountProperties : integer read GetPropertyCount;// write fPropertyCount
protected
{ Protected declarations }
FOwner: TObject;
public
{ Public declarations }
constructor Create(AOwner: TComponent); override;
destructor destory ; virtual;
function GetColumnNameByColumnNumber(ColumnNumber : Integer) : String;
function GetColumnNames : TStringArray;
// function GetFirst : TGenericColumnDef;
published
property CiteID : TGenericColumnDef read fCiteID write fCiteID;
property CiteType : TGenericColumnDef read fCiteType write fCiteType;
property Title : TGenericColumnDef read fTitle write fTitle;
property Author : TGenericColumnDef read fAuthor write fAuthor;
//property Nthproperty .........
end;
//derived from TGenericAsset
type
TEditedBook = class(TGenericAsset)
private
protected
public
published
property CiteID : TGenericColumnDef read fCiteID write fCiteID;
property Title : TGenericColumnDef read fTitle write fTitle;
property Author : TGenericColumnDef read fAuthor write fAuthor;
end;
任何要点或准则(示例代码)的高度赞赏。 在此先感谢。
肯,谢谢。学习代码以查看它可以完成这项工作。 – chukkan 2011-03-27 11:09:05