Hallo,
TCollection/TCollectionitems:
Bei folgenden Beispiel erhalte ich nicht die Möglichkeit die Collectionitems zu verändern, bzw. den entsprechenden Propertyeditor dafür aufzurufen.
<PRE>
unit UCollectionTest;
<PRE>
interface
<PRE>
uses Windows, Messages, SysUtils, Classes, Controls;
<PRE>
type
TFeld = class (TCollectionItem)
<PRE>
private
fFeldName: String;
<PRE>
published
property FeldName: String read fFeldName write fFeldName;
end;
<PRE>
type
TFelder = class (TCollection)
private
fOwner : TFeld;
function GetItem(i: Integer): TFeld;
<PRE>
protected
procedure Update(Item: TCollectionItem); override;
<PRE>
public
constructor Create(AOwner: TPersistent; ItemClass: TCollectionItemClass);
property Items [i : Integer] : TFeld read GetItem; default;
function Add : TFeld;
<PRE>
{$ifndef VER140}
property Owner : TScopeItem read fOwner;
{$endif}
published
end;
<PRE>
type
TCollectionTest=class(TComponent)
<PRE>
private
fFelder: TFelder;
<PRE>
published
property Felder: TFelder read fFelder write fFelder;
end;
<PRE>
procedure Register;
<PRE>
implementation
<PRE>
procedure Register;
begin
RegisterComponents ('GOERLITZ', [TCollectionTest]);
end;
<PRE>
function TFelder.GetItem(i: Integer): TFeld;
begin
result := inherited Items [i] as TFeld;
end;
<PRE>
constructor TFelder.Create(AOwner: TPersistent; ItemClass: TCollectionItemClass);
begin
fOwner := TFeld (AOwner);
inherited Create (ItemClass);
end;
<PRE>
function TFelder.Add: TFeld;
begin
result := inherited Add as TFeld;
end;
<PRE>
procedure TFelder.Update(Item: TCollectionItem);
begin
inherited Update(Item);
end;
<PRE>
end.
</PRE>
Gruß, Tom
TCollection/TCollectionitems:
Bei folgenden Beispiel erhalte ich nicht die Möglichkeit die Collectionitems zu verändern, bzw. den entsprechenden Propertyeditor dafür aufzurufen.
<PRE>
unit UCollectionTest;
<PRE>
interface
<PRE>
uses Windows, Messages, SysUtils, Classes, Controls;
<PRE>
type
TFeld = class (TCollectionItem)
<PRE>
private
fFeldName: String;
<PRE>
published
property FeldName: String read fFeldName write fFeldName;
end;
<PRE>
type
TFelder = class (TCollection)
private
fOwner : TFeld;
function GetItem(i: Integer): TFeld;
<PRE>
protected
procedure Update(Item: TCollectionItem); override;
<PRE>
public
constructor Create(AOwner: TPersistent; ItemClass: TCollectionItemClass);
property Items [i : Integer] : TFeld read GetItem; default;
function Add : TFeld;
<PRE>
{$ifndef VER140}
property Owner : TScopeItem read fOwner;
{$endif}
published
end;
<PRE>
type
TCollectionTest=class(TComponent)
<PRE>
private
fFelder: TFelder;
<PRE>
published
property Felder: TFelder read fFelder write fFelder;
end;
<PRE>
procedure Register;
<PRE>
implementation
<PRE>
procedure Register;
begin
RegisterComponents ('GOERLITZ', [TCollectionTest]);
end;
<PRE>
function TFelder.GetItem(i: Integer): TFeld;
begin
result := inherited Items [i] as TFeld;
end;
<PRE>
constructor TFelder.Create(AOwner: TPersistent; ItemClass: TCollectionItemClass);
begin
fOwner := TFeld (AOwner);
inherited Create (ItemClass);
end;
<PRE>
function TFelder.Add: TFeld;
begin
result := inherited Add as TFeld;
end;
<PRE>
procedure TFelder.Update(Item: TCollectionItem);
begin
inherited Update(Item);
end;
<PRE>
end.
</PRE>
Gruß, Tom
Comment