Ein CopyDataStruct für was Anderes verwenden zu wollen, als für WM_COPYDATA ... naja
Hier bissl Was zum Abgucken und Ideenholen:
Delphi-Quellcode:
procedure TCustomEdit.SetSelTextBuf(Buffer: PChar);
begin
SendMessage(
Handle, EM_REPLACESEL, 0, LPARAM(Buffer));
end;
// oder besser
procedure TCustomEdit.DoSetTextHint(
const Value:
string);
begin
...
SendTextMessage(
Handle, EM_SETCUEBANNER, 0, Value);
end;
Und natürlich auch beim Hersteller nachzulesen.
EM_REPLACESEL :
https://docs.microsoft.com/en-us/win.../em-replacesel
PS, auch wenn es hier keine Lösung werden wird:
Selbst wenn es so funktioniert hätte, dann wäre aber die Größe dennoch falsch geworden.
Zitat:
1 + ( Length( s ) * SizeOf( Char ) )
Die abschließende #0 hätte natürlich auch 2 Byte groß sein wollen.
Erst (Length+1) und dann das *.