type
TPersistent = class(TObject)
public
constructor Create;
destructor Destroy; override;
class function ClassName: String; stdcall; virtual;
end;
type TComponent = class;
TControl = class(TComponent)
private
FAlign: TAlign;
FClientHeight: Integer;
FClientWidth: Integer;
FHeight: Integer;
FLeft: Integer;
FTop: Integer;
FWidth: Integer;
protected
function GetClientHeight: Integer;
function GetClientWidth: Integer;
procedure SetClientHeight(AValue: Integer);
procedure SetClientWidth (AValue: Integer);
procedure SetAlign(AValue: TAlign);
public
constructor Create(AOwner: TComponent);
destructor Destroy; override;
class function ClassName: String; stdcall; virtual;
published
property Align: TAlign read FAlign write SetAlign default alNone;
property Height: Integer read FHeight write FHeight;
property Left: Integer read FLeft write FLeft;
property Top: Integer read FTop write FTop;
property Width: Integer read FWidth write FWidth;
end;
TComponent = class(TPersistent)
private
FArray: array of TComponent;
FOwner: TComponent;
FIndex: Integer;
FTag: NativeInt;
protected
function GetComponent(I: Integer): TComponent;
function GetComponentCount: Integer;
function GetComponentIndex: Integer;
function GetComponentOwner: TComponent;
procedure SetComponentIndex(AValue: Integer);
procedure SetComponentOwner(AOwner: TComponent);
public
constructor Create(AOwner: TComponent); virtual;
destructor Destroy; override;
class function ClassName: String; stdcall; virtual;
published
property ComponentCount: Integer read GetComponentCount;
property ComponentIndex: Integer read GetComponentIndex write SetComponentIndex;
property Components[I: Integer]: TComponent read GetComponent;
property Owner: TComponent read FOwner;
property Tag: NativeInt read FTag write FTag default 0;
end;