Hallo und

!
Das kann auch nicht gehen, weil im Record nur ein Pointer auf das TPicture-Objekt liegt.
Am besten nimm einen TFileStream und einen TMemoryStream. Jetzt speichere dein Bild mit SaveToStream in den MemoryStream. Dann speicherst du in einer Integervariable dessen Größe, schreibst die Variable in den FileStream und kopierst den Inhalt des MemoryStreams dahinter. Das selbe dann noch mit der Stringliste.
Beim Lesen kannst du dann jeweils zuerst die Größe auslesen, dann den entsprechenden Teil des FileStreams in einen MemoryStream kopieren und das Bild laden und danach das selbe mit der Stringliste.