![]() |
TWMCopyData Message verschicken. Emfangsproblem
Innerhalb meines Programms möchte ich eine message verschicken. Ein MessageHandler, der auch für Messages von woanders zuständig ist, soll die entgegennehmen.
Sender und Empfänger sind dasselbe Programm. Die Message soll gesendet werden, ohne dass eine neue Instanz erstellt wird
Delphi-Quellcode:
// Button1
var msg: TWMCopyData; begin msg.CopyDataStruct.cbData := (StrLen(PChar(Command)) + 1) * SizeOf(WideChar); msg.CopyDataStruct.lpData := PChar(Command); MyMessageHandler(msg); end;
Delphi-Quellcode:
Wenn ich abc sende, kommt ab an. Was mache ich da falsch?
// MessageHandler
procedure MyMessageHandler(var msg: TWMCopyData); var CommandList: string; begin CommandList:= string(PChar(msg.CopyDataStruct.lpData)); // Arbeite mit CommandList end; |
AW: TWMCopyData Message verschicken. Emfangsproblem
Du berechnest die Zeichenkettenlänge komisch. Du castest zu PChar multiplizierst aber mit Größe von WideChar. Müsstest du dann nicht auch zu PWideChar casten?
|
AW: TWMCopyData Message verschicken. Emfangsproblem
Seit Delphi 2009 ist
Delphi-Quellcode:
SizeOf(Char) = SizeOf(WideChar)
|
AW: TWMCopyData Message verschicken. Emfangsproblem
Der obige Code funktioniert in einem Minimalprogramm einwandfrei. Kannst du das mit einem Beispielprogramm nachstellen? Dann häng das doch bitte mal hier an.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:02 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz