Einzelnen Beitrag anzeigen

Andreas L.
(Gast)

n/a Beiträge
 
#1

Seter und getter von TCollection überschreiben

  Alt 19. Sep 2007, 14:13
Hi,
ich verwende in einer Komponente zur Verwaltung von Items die TCollection. Damit nur meine eigenen TCollectionItems hinzugefügt werden können und nicht andere, habe ich einige Routinen überschrieben.

Delphi-Quellcode:
type
  TNavigationListCollection = class(TCollection)
  protected
    function GetItem(Index: Integer):TNavigationListCollectionItem;
    procedure SetItem(Index: Integer; const Value: TNavigationListCollectionItem);
  public
    function Add:TNavigationListCollectionItem;
    function Insert(Index: Integer):TNavigationListCollectionItem;
    property Items[Index: Integer]: TnavigationListCollectionItem read GetItem write SetItem; default;
  end;

...
...

procedure TNavigationListCollection.SetItem(Index: Integer; const Value: TNavigationListCollectionItem);
begin

 Items[Index].Assign(Value);

end;

function TNavigationListCollection.GetItem(Index: Integer):TNavigationListCollectionItem;
begin

 Result.Assign(Items[Index]);
// Result := Items[Index];

end;

function TNavigationListCollection.Add:TNavigationListCollectionItem;
begin

 Result := (inherited Add as TNavigationListCollectionItem);

end;

function TNavigationListCollection.Insert(Index: Integer):TNavigationListCollectionItem;
begin

 Result := (inherited Insert(Index) as TNavigationListCollectionItem);

end;
Doch wenn getItem aufgerufen wird, bekomme ich einen Stack-Überlauf. Wieso? Ich kann keinen Fehler finden...
  Mit Zitat antworten Zitat