Einzelnen Beitrag anzeigen

Flippo

Registriert seit: 26. Sep 2004
111 Beiträge
 
Delphi 2005 Personal
 
#12

Re: WM_COPYDATA macht große Probleme

  Alt 18. Jul 2006, 18:56
Hi,
...hmm weiss nicht genau ob du mich da richtig verstanden hast oder ob ich dich jetz falsch verstehe.. mir geht es nicht darum ob das Programm 2 mal geöffnet ist oder nicht, sondern darum das du, wemm du das Programm einmal aufrufst ein Handle für deine Application und eines für deine Form hast...
Also nochmal als Quelltext ausgedrückt:

application.handle und form1.handle innerhalb des selben Programms, dass auch nur eine Form hat, waren bei mir unterschiedliche Werte und man muss an Form1 senden wenn die Empfangsfunktion unter Form1 deklariert ist...

ansonsten mein Code der bei mir funktioniert:

Zum Senden:
Delphi-Quellcode:
procedure TForm1.SendMainApp(S:String);
var
   copyDataStruct : TCopyDataStruct;
begin
   copyDataStruct.dwData := 0; //use it to identify the message contents
   copyDataStruct.cbData := 1 + Length(s);
   copyDataStruct.lpData := PChar(s);
   sendmessage(PH,WM_COPYDATA,application.handle,Integer(@CopyDataStruct)); //PH ist das handle der Form an die ich Sende (form1.handle)
end;
Zum empfangen:
procedure WMCopyData(var Msg :TWMCopyData); message WM_COPYDATA;
Delphi-Quellcode:
procedure TForm1.WMCOPYDATA(var Msg: TWMCopyData);
var s,s1:string;
    i:integer;
begin
  s := PChar(Msg.CopyDataStruct.lpData) ;
  //msg.Result := 2006;
end;
  Mit Zitat antworten Zitat