Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi sendmessage problem (https://www.delphipraxis.net/80328-sendmessage-problem.html)

Luckie 7. Nov 2006 15:36

Re: sendmessage problem
 
Oder so:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  cds: TCopyDataStruct;
  s: PChar;
begin
  s := 'Test-Text';
  cds.dwData := length(s);
  cds.lpData := s;
  SendMessage(Handle, WM_COPYDATA, Handle, Integer(@cds));
end;

procedure TForm1.WMCOPYDATA(var msg: TWMCopyData);
var
  buffer: PChar;
  len: Integer;
begin
  len := msg.CopyDataStruct.dwData;
  GetMem(buffer, len);
  try
  CopyMemory(buffer, msg.CopyDataStruct.lpData, len);
  ShowMessage(String(buffer));
  finally
    FreeMem(Buffer);
  end;
end;
Getestet und funktioniert.

Timi-loader 7. Nov 2006 17:14

Re: sendmessage problem
 
ok dankeschön!

ich habe den code von luckie nochmal bissl geändert weil er so nicht funktionierte in meinem programm-> es kam wieder nur müllzeichen an.. hab einfach cristians beispiel angeguggt und schließlich probiert und aus dem
Delphi-Quellcode:
cds.dwData := length(s);
ein
Delphi-Quellcode:
cds.cbData := length(s);
gemacht und aus
Delphi-Quellcode:
len := msg.CopyDataStruct.dwData;
dementsprechen auch
Delphi-Quellcode:
len := msg.CopyDataStruct.cbData;
dann ging es erst richtig. :wink:

mfg
:thumb:

Luckie 7. Nov 2006 17:38

Re: sendmessage problem
 
Zitat:

Zitat von Timi-loader
ich habe den code von luckie nochmal bissl geändert weil er so nicht funktionierte in meinem programm-> es kam wieder nur müllzeichen an

:gruebel:


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:18 Uhr.
Seite 2 von 2     12   

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-2025 by Thomas Breitkreuz