Envois et Réception de Messages Windows

Envois de messages

PostMessage

postMessage : Envoie un message dans la file d'attente de messages associée au thread et revient sans attendre que le thread ai traité ce message.

On pourrait dire que ce mécanisme est Asynchrone.

PostMessage(Application.MainForm.Handle,1222,0,0);

SendMessage

SendMessage : appelle la procédure de fenêtre pour la fenêtre spécifiée et ne revient pas tant que la procédure de fenêtre n'a pas traité le message.

Par comparaison avec PostMessage on pourrait assimiler ce mécanisme avec du Synchrone.

SendMessage(Application.MainForm.Handle,1222,0,0);

Perform

Perform a le même comportement que SendMessage (Synchrone)

Application.MainForm.Perform(1222,0,0); 

Interception de message

Par un TForm

Dans cet exemple on veut intercepter un message indexé 1222.

Pour envoyer ce message on peut utiliser : PostMessage(Application.MainForm.Handle,1222,0,0);

 TMainForm = class(TForm)
  ...
  private
    procedure TestMSG(var Message:TMessage);message 1222;
    ...
  public
  end;  
 
  ...
  ...
 
procedure TMainForm.TestMSG(var Message: TMessage);
begin
  DebugLn('Reçu Message 1222');
end;                                                    
Vous pourriez laisser un commentaire si vous étiez connecté.