Hallo
Was machst du da !!!
Dein Problem ist bei
StringReplace(tmp...
Du verwendest hier unnötigerweise PChars.
StringReplace erwartet hier eine String uind keinen PChar. Desweiteren hast du ein Inc(tmp)!!! darin. Damit zeigts du nicht mehr auf das Längebyte an Position 0 eines Shortstring sondern auf das erste Zeichen. Du weist, daß ein PChar mit einer #0 beendet wird und derr Kommt wann ?
Also versuchs bitte mal nur mit Strings.