Hola dalyla2010.
Se puede hacer un procedimiento para enviar el mensaje, lo podrías ubicar en la interface de alguna unidad de uso común.
Algo como:
Código Delphi
[-]
procedure EnviarMensaje(Cadena, FrmClassName: string);
begin
SendMessage(FindWindow(PChar(FrmClassName), PChar(Copy(FrmClassName, 2, 255))),
WM_USER + 300, 0, DWORD(Pchar(Cadena)));
end;
Un ejemplo de uso sería:
Código Delphi
[-]
EnviarMensaje('MENSAJE ENVIADO','TFormReceptor');
Pero el procedimiento para recibir el mensaje tendrías que incluirlo en cada form receptor, es decir:
Código Delphi
[-]
...
private
FResultado: string;
procedure RecibirMsg(var Msg: TMessage); message WM_USER + 300;
...
implementation
procedure TFormReceptor.RecibirMsg(var Msg: TMessage);
begin
FResultado:= PChar(Msg.LParam);
end;
Un saludo.