Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Delphi XE2 und String an anderes Fenster senden


galagher - Sa 09.06.12 15:00
Titel: Delphi XE2 und String an anderes Fenster senden
Hallo!

Ich habe meine schon etwas älteren pas-Dateien soweit nötig für Delphi XE2 angepasst. Aber warum funktioniert hiermit http://www.swissdelphicenter.ch/de/showcode.php?id=1242 das Übersenden zB. eines Strings an ein Fenster eines anderen (von mir geschriebenen) Programmes nicht mehr? Es kommt entweder nichts an oder der String ist zu kurz, und
cbData := StrLen(PChar(Edit1.Text)) + 1; klappt überhaupt nicht.
Gebe ich hier eine fixe Zahl an, klappt es zwar, aber irgendwann kommt ein Zugriffsfehler. Ändern von PChar auf PAnsiChar nützt nichts.

Mit anderen Worten: Das funktioniert einfach nicht mehr. Dabei hatte ich so ähnlichen Code (= die Teile, die den Textstring verarbeiten) fix und fertig in einer eigenen pas-Datei und musste einfach nur die Prozedur SendText(//...) aufrufen. :autsch:

Was passt hier nicht mehr?


Gausi - Sa 09.06.12 15:35

Die Größe müsste afaik mit WideChar so aussehen


Delphi-Quelltext
1:
cbData := (StrLen(PChar(Edit1.Text)) + 1) * SizeOf(Char);                    


Ein reines Umstellen auf PAnsiChar hat wahrscheinlich nicht geklappt, weil die ganzen API-Aufrufe in dem Code bei XE2 die Wide-Variante nutzen.


galagher - Sa 09.06.12 17:01

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
Die Größe müsste afaik mit WideChar so aussehen


Delphi-Quelltext
1:
cbData := (StrLen(PChar(Edit1.Text)) + 1) * SizeOf(Char);                    
So einfach! Jetzt funktioniert es, vielen Dank!