Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Exception EAccessViolation bei inherited add()

  Alt 11. Aug 2008, 08:43
Moin Detlef,

die gewünschten Ableitungen (TListColumn, TListColumns, TSortListView) wurden ja hergestellt, aber im Konstruktor von TSortListView bleibt die Collection "Columns" die alte:

Delphi-Quellcode:
constructor TCustomListView.Create(AOwner: TComponent);
begin
  // ...
  FListColumns := TListColumns.Create(Self);
  // ...
end;
Leider kennt der Konstruktor der Collection nur seine eigene Item-Klasse:

Delphi-Quellcode:
constructor TListColumns.Create(AOwner: TCustomListView);
begin
  inherited Create(TListColumn);
  FOwner := AOwner;
end;
Es ist immer problematisch, wenn bei einer Ableitung auch noch eingebettete Klassen abgeleitet werden sollen und diese Vorgehensweise vom Designer der Klassenhierarchie nicht vorgesehen wurde. Daniel sollte vielleicht nochmal überlegen, ob sein Ansatz hier der richtige ist. Lässt TD nicht schon class decoration zu?

Freundliche Grüße
  Mit Zitat antworten Zitat