Salut,

je démarre depuis peu dans l'utilisation de la communication avec PostMessage.

J'ai un objet, obj1, qui reçoit des infos sur le port COM, dont une, pour l'exemple, qui est un numéro de série.

J'aimerai que cet objet puisse envoyer un message à un thread, de façon à ce que ce dernier s'occupe de la gestion de ce numéro de série lorsqu'il sera apte à le faire.

J'ai alors pensé faire un postMessage(handleThread, WM_Mon_Message, 0, 0).

J'ai tout codé, tout compile, mais à priori le thread ne reçoit pas l'événement.

J'ai codé comme cici:

Fichier de constante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WM_SERIE = WM_USER + 1;
Fichier du thread:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
type
  TThread232 = class(TThread)
  private
   ...
   ...
   procedure WM_EVT_SERIE(var Msg: TMessage); message WM_SERIE;
   ...
   ...

implémentation
...
...
procedure TThread232.WM_EVT_SERIE(var Msg: TMessage);
begin
  showmessage('ce serait déjà pas mal si ça s'affichait');
end;
Dans une fonction de mon objet obj1:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
...
postMessage(Monthread232.Handle,WM_SERIE,0,0);
...

Comme déjà dit, ça compile, (et à l'execution ça plante pas) mais n'aurais-je pas oublié quelque chose, stupide petit scarabbé que je suis ?

Merci.


NEWS ==> ça marche si je fait pareil mais avec une form et non un thread... ça ne marche donc pas avec les threads ?

NEWS 2 ==> En fait je suis qu'un petit scarrabbée à la noix, il semblerait que la solution à mon "pb" soit tout simplement la fonction PostThreadMessage !

NEWS 3 ==> Bon, ben, j'ai parcouru 10.000 pages sur le net à la recherche d'un exemple valide et exploitable d'utilisation de postThreadMessages en vain... Je vais surement laisser tomber.