Hi!
- Die Definition von "feedBD: File Of TFeedSet" kann doch aus der Klasse raus, oder? In der Klasse willst du doch mit firstItem und LastItem auf die im Speicher vorhandenen Items zugreifen. Somit braucht diesen Filetype hier keiner. Diesen bräuchtest du nur lokal in der Lade/Speicher Methode zu deklarieren.
- TfeedSet ist ein Record und kein Objekt, daher frage ich mich, wo bei dir ein Objekt instanziiert wird?
- Wozu brauchst du noch itemList: PfeedSet;, wenn du mit firstItem und LastItem doch schon den Anfang und Ende der verketteten Liste hast?
- Die beiden Zeiger (firstItem,lastItem:pointer
, sollten die nicht eher vom Typ PfeedSet sein anstatt untypisiert als Pointer?
- Constructor und Destructor sind beide öffentlich (public). Du kannst sie nicht in eine geringere Sichtbarkeitsebene verschieben (private), daher musst du sie dort rausnehmen. Wenn die beiden Methoden private wären, dann könntest du ja niemals von aussen eine Klasse instanziieren oder freigeben.
Zitat von
Klaus01:
... wird ja wenn ich TObjectList.add(TFeed) das Object in der Liste instantiiert.
Falsch! Die TObjectList kennt ja den Typen der Klasse nicht welchen du ihr gibst und kann somit schlecht diesen instanziieren. Du übergibst bei Add() der TObjectList immer schon fertige Instanzen.
Zitat von
Klaus01:
Wie kann ich der ganzen Geschichte dann Parameter mitgeben?
Wieso änderst du nicht TFeedSet von einem Record in ein Objekt und entfernst die Pointer für die verkettete Liste. Dann kannst du TFeedSet einen Constructor definieren mit den Parametern die du brauchst um das Objekt zu intialisieren. Und TObjectList wäre dann auch nutzbar.