die Lösung: du solltest den Speicher für die String-Variable richtig Initialisieren
Delphi-Quellcode:
GetMem(Bookmark^, sizeof(TBookmarkInfo));
FillChar(Bookmark^, sizeof(TBookmarkInfo), 0);
// oder halt gleich "New" - siehe Anhang
Das Problem ist nicht der übergebene String, sondern der nicht vorhandene, aber angeblich existierende alte String, welchen Delphi versucht freizugeben, bevor es den neuen String da reinspeichert.
und das nächste mal bitte alle Dateien zusammen anhängen ... wir müssen ja nicht mehr arbeit haben, als nötig, um da mal rein zu sehn