Verfolge den Ansatz mit der TObjectList und TMemoryStream weiter.
Das Hin- und Hergewandel verbraucht doch nur unnötig Performance.
Warum da eine Zugriffsverletzung kommt ... Tja da muss ich mich erst mal durch den umfangreichen Code von dir durcharbeiten.
Warum TObjectList umschreiben?
Wenn du zusätzlich zu der Liste mit den MemoryStreams auch noch einen durchsuchbaren Index benötigst, dann würde sich sogar noch eher eine TStringList anbieten
Bei Delphi 2010 gibt es dafür auch TDictionary (gibt es das bei D2009 auch schon?)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ea 0a 4c 14 0d b6 3a a4 c1 c5 b9
dc 90 9d f0 e9 de 13 da 60)