Das hier (Edit1.Text ist hier als Quasikonstante in Anführungszeichen gesetzt) funktioniert, es kommt beim Empfänger Edit1.Text an:
Code: Alles auswählen
procedure TForm1.SendGetGroupIDs;
var
P : PChar;
lp: LPARAM;
dwRecipient: DWord;
begin
p:=PChar('Edit1.Text');
dwRecipient:=BSM_APPLICATIONS;
lp:=LongInt(Handle);
BroadcastSystemMessage(BSF_POSTMESSAGE, @dwRecipient, wSetGroupIDsMsg, Integer(p), lp);
end;
Code: Alles auswählen
procedure TForm1.SendGetGroupIDs;
var
P : PChar;
lp: LPARAM;
dwRecipient: DWord;
begin
p:=PChar(Edit1.Text);
dwRecipient:=BSM_APPLICATIONS;
lp:=LongInt(Handle);
BroadcastSystemMessage(BSF_POSTMESSAGE, @dwRecipient, wSetGroupIDsMsg, Integer(p), lp);
end;
Was kann man tun, damit dieser simple kleine Code funktioniert?
Falls es jemand nachvollziehen mag, hier gleich der relevante Teil der Auswertung der Botschaften beim Empfänger als Auszug:
Code: Alles auswählen
procedure TForm1.WndProc(var Message: TMessage);
var
li: longint;
GruppenIDs: PChar;
begin
li:=LongInt(Message.lParam); // Message empfangen
if Message.msg=wSetGroupIDsMsg then begin // GroupID empfangen
if li=LongInt(Handle) then Exit;
GruppenIDs:=PChar(Message.wParam);
Memo1.Lines.Add(GruppenIDs);
end;
inherited WndProc(Message);
end;