Hallo Delphianer,
wieder ein mal versuche ich mich an Pointern ...
folgender Code funktioniert im Delphi 2009, aber nicht so richtig:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
procedure fktCopy (APointer : Pointer ; AText : string);
begin
CopyMemory(APointer,PChar(AText),2*length(AText)+1);
end;
var
sStr , sData : WideString;
pStr : Pointer;
begin
sData := '123';
sStr := 'Hallo Welt';
pStr := PChar(sStr);
fktCopy (pStr,sData);
ShowMessage (sStr);
end;
Die Messagebox zeigt mir "123" als Ergebnis an.
Tatsächlich steht aber in
sStr ='123'#0'o Welt'
.
Ich möchte aber, dass der Inhalt der Variable sStr durch den Inhalt der Varable sData komplett ersetzt wird, also das quasi in sStr '123' als Inhalt steht.
Wie kann ich in meiner fktCopy-Procedure die Länge des Strings korrekt setzen?