Bist du eigentlich selbst auf die Idee mit dem Rückgabetyp PChar gekommen? Besser ist, wenn du beim Beenden deiner Funktion nicht zwischen String und PChar wechselst:
Delphi-Quellcode:
function TCOM.ReadString: string;
var
Dat: Integer;
begin
Dat := 0;
Result := ''; // hier wird der String initialisiert
while ((Dat > -1) and (Dat <> 13)) do begin
Dat := ReadByte();
if ((Dat > -1) and (Dat <> 13)) then
Result := Result + Chr(Dat);
end;
end;
marabu