Ernsthaft? So viele Antworten und noch keiner konnte eine richtige und klare Antwort auf das hier zustande bringen?
Das Problem ist, dass in XE6 (genauer: Ab Delphi 2009) die Chars in deinen Strings 2 Byte groß sind und DataStruct.cbData die Anzahl der zu sendenden Bytes möchte und nicht die Anzahl der Zeichen.
Von daher:
DataStruct.cbData := Length(Edit1.Text)*SizeOf(Char);
Darum werden deine Strings auch ziemlich genau ab der Hälfte abgeschnitten.
Probiert mal statt
Code:
DataStruct.cbData := length(Edit1.Text)+1;
Code:
DataStruct.cbData := SizeOf(Edit1.Text)+1;
SizeOf(Edit1.Text) gibt immer SizeOf(String) = SizeOf(Pointer) zurück. Also 4 in 32-Bit und 8 in 64-Bit Anwendungen.
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."