Hallo,
abhängig von einem Suchbegriff wird ein Objekt in einer Liste gespeichert.
Delphi-Quellcode:
if POS('DISK', DStr) <> 0 then Result := TIDEDrive.Create(DeviceID)
else
if POS('CDROM', DStr) <> 0 then Result := TCDROMDrive.Create(DeviceID)
else Result := nil;
Sowohl TIDEDrive als auch TCDROMDrive sind beide von TObject abgeleitet.
Result wird, wie geschrieben in eine Liste vom Typ TList gespeichert;
Beim Freigeben kommt es jedoch zur ZV, da ich nicht weiss hinter welchen
Eintrag sich welches Objekt verbirgt.
Delphi-Quellcode:
destructor TxxxXXXXX.Destroy;
var
I : Integer;
begin
for I := FList.Count -1 downto 0 do
begin
TObject(FList.Items[I]^).Free;
FList.Delete(I);
end;
FList.Free;
inherited Destroy;
end;
Auch der is-operator hilft nicht weiter. Muss ich die Zuweisung anders gestallten, so in der Art
Result := Ptr(TIDEDrive.Create(DeviceID)) ???
Bin für jede Antwort dankbar.