Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Von TObjectList erben und gleichzeitig Interface implement.?


sunnyandy - Fr 07.09.07 22:40
Titel: Von TObjectList erben und gleichzeitig Interface implement.?
Hallo,

habe eine abgeänderte TObjectList erstellt, damit ich mir die TypeCasts sparen kann.
Das sieht folgendermaßen aus:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
interface

  uses
    contnrs,
    Kunde,
    InterfaceSaveableList;

  type
    TListeKunden = class(TObjectList, ISaveableList)

  protected
...


Die Klasse soll also von TObjectList erben und das Interface ISaveableList implementieren.
Nun kommt die Meldung, dass ich QueryInterface, _AddRef usw implementieren soll... Wenn man die Methoden nicht implementieren möchte, soll man von TInterfacedObject ableiten, habe ich gelesen.

Ich kann natürlich nicht von zwei Klassen gleichzeitig erben oder?
Wie bekomme ich das nun am besten hin?

Danke im Voraus!
Gruß, Andy


ah - Di 18.09.07 18:12

Nun, kommt drauf an.

1. Möglichkeit: eine echte Klasse mit RefCount Support erstellen (= Arbeiten mit Interface Variablen)
=> Methoden wie in TInterfacedObject implementieren

2. Möglichkeit: Klasse ohne RefCount Support erstellen (= Arbeiten mit Klassen Variablen)
=> Methoden wie in TComponent implementieren

3. Möglichkeit: Verzicht auf das Interface und nur die Klasse verwenden.

Oder eine alternative Container Library verwenden, z.B. aus der JCL (Project JEDI) und dort die Interfaces/Klassen entsprechend erweitern.

Andreas