[Delphi 7] Récupérer tous les messages arrvant au niveau d'un Tbutton

Récupérer tous les messages arrvant au niveau d'un Tbutton [Delphi 7] - Delphi/Pascal - Programmation

Marsh Posté le 22-01-2004 à 16:09:24    

Salut!
 
(je précise que j'utilise Delphi 7)
 
Voilà, j'ai un composant de la classe TButtoon dans une instance TForm.
 
Je voulais savoir comment faire pour récupérer TOUS les messages qui étaient envoyés à mon TButton? Est ce que c'est possible?
 
Merci :)

Reply

Marsh Posté le 22-01-2004 à 16:09:24   

Reply

Marsh Posté le 23-01-2004 à 01:22:13    

Via Application.OnMessage tu peux avoir tous les messages, faut juste que tu vérifies celui qui est pour ton bouton ou pas.
 
Sinon tu dérives un compo TButton et la le monde est à toi :D

Reply

Marsh Posté le 23-01-2004 à 09:09:29    

En passant par Application.OnMessage, chui OK!
 
Mais ce qui m'intéresserait, ce serait en dérivant TButton. Mais une fois que j'ai mon dérivé de OnButton, comment faire pour chopper TOUS les messages, de manière générique, et non pas seulement en utilisant une procédure par type de message?

Reply

Marsh Posté le 23-01-2004 à 09:50:57    

en écrasant  

Code :
  1. procedure Dispatch(var Message);


peut-être (en n'oubliant pas d'appeler inherited après)


Message édité par antp le 23-01-2004 à 09:51:34

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-01-2004 à 10:01:26    

D'accord, ça marche, je vais essayer ça! Enfin, dernière question, qui est liée : comment je peux faire pour afficher une liste de messages au fur et à mesure qu'ils sont interceptés! Bien sûr, un truc du type "ShowMessage" serait une tuerie, car ça bloquerait l'appli! En fait, je rechercherait un truc équivalent au "OutputDebugString" du C++.

Reply

Marsh Posté le 23-01-2004 à 10:16:56    

tu peux toujours faire un fichier log avec AssignFile, Append, WriteLn, CloseFile.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-01-2004 à 10:19:01    

D'accord! Donc, y a pas moyen de voir les messages arriver dans une fenetre genre "console" en temps réel?

Reply

Marsh Posté le 23-01-2004 à 10:29:05    

Tu peux mettre un Memo sur une fenêtre, mais je ne pense pas que tu puisses avoir une console en plus de ta fenêtre normale (malheureusement)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 23-01-2004 à 10:32:54    

D'accord! Je débute, mais le Mémo sur la fenêtre sera parfait je pense :) Je vais essayer tout ça!
 
Merci beaucoup :hello:

Reply

Marsh Posté le 23-01-2004 à 11:18:45    

Une question en passant (dans la continuité de ce qu'on se disait), comment faire pour indiquer au Tmemo de passer à la ligne?
 
Par exemple :

Code :
  1. myMemo.Text := myMemo.Text {+ passage à la ligne ici} + 'Nouveau Texte';


Message édité par Yoyo@ le 23-01-2004 à 11:19:19
Reply

Marsh Posté le 23-01-2004 à 11:18:45   

Reply

Marsh Posté le 23-01-2004 à 11:22:29    

Un passage à la ligne c'est #13#10 ou sLineBreak, au choix.
Sachant qu'à chaque appel de Memo.Text il reconstruit une chaîne contenant toutes les lignes (c'est pour ça que c'est pas mal d'aller voir le code), c'est pas une bonne solution pour rajouter des lignes.
Il vaut mieux faire myMemo.Lines.Add('nouvelle ligne'); ;)


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed