Zitat:
dann kannst du auch gleich konsistent bleiben und ein Objekt zurückgeben
...sind viele verschiedene Objekte da der Parser sich in der Funktion unterscheiden kann (Text unterschiedlich)
Deshalb das Interface. Der Thread arbeitet mit dem Interface. Da ist es wurscht ob Tbla oder TBlubb hinten dran hängt.
Meinst du wenn ich statt der Objektliste eine Interface Liste übergebe und die (zu ergänzenden) Interfaces der im Parser erzeugten Objekte hineinlege habe ich weniger Probleme?
Zitat:
Hast du vielleicht einmal einen Stacktrace von einem solchen Fehler
...nicht als Bild. Die letzte Zeile vor einer der Zugriffsverletzungen war:
Delphi-Quellcode:
procedure TXWebBaseParser.ParseAlarm(const aText: PChar; AlarmList: TAlarmList);
var
aAlarm: TAlarm;
I, PositionFirst, PositionCount, TempPosition: Integer;
sl: TStringList;
begin
AlarmList.Clear; //<- hier. Klingt als wäre die Objektliste nicht existent. Diese wird aber beim Erzeugen des Threads erzeugt und im Destroy freigegeben.
sl := TStringList.Create;
.
.
...deshalb vermute ich die Fehler in der Speicherverwaltung weil ich mit den Objekten nicht richtig umgehe. Mich interessiert halt wie es richtig geht. Deine Variante, grundsätzlich alles mit Interfaces, werde ich mal ausprobieren.
Leider erst nächstes Wochenende.
Danke...