PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → transfert d'objet - Evenement windows
transfert d'objet - Evenement windows
Débuté par Florian O, 07 avr. 2005 13:28 - 2 réponses
Posté le 07 avril 2005 - 13:28
Bonjour à tous j'ai 2 petites questions à vous soumettre :

1) Est-il possible d'envoyer comme paramètres un objet dynamique
à un PostMessage et comment faire pour le récupérer dans la fonction appellée par l'évenement. Pour une chaine de caractère on utilise chainerecupere mais pour un objet ?

2)Si l'on donne un nom à un message comment connaitre l'entier qui est réellement envoyé par le PostMessage?

Ex:

//Dans l'initialisation de la fenetre
geEve = Evénement("GererEve", "*.", 0)
ThreadExécute("Plif",threadNormal,Thread)

//Procedure locale de la fenetre
PROCEDURE GererEve(msg,wparam,lparam)
lcPar est une chaîne = ChaîneRécupère(wparam,crAdresseASCIIZ)
Trace(msg,lcPar)

//Thread lancé par l'initialisation
lcMsg est une chaîne = "BOUH"
TANTQUE Vrai
PostMessage(Handle(Fenêtre1),lcMsg,&lcMsg,null)
SignalAttend("Pause",200)
FIN

Résultats:

...
49751 BOUH
49751 BOUH
49751 BOUH
49751 BOUH
...
Posté le 09 avril 2005 - 21:52
Bonjour,

Pour répondre à ta première question ; (Possibilité d'envoyer un objet) il suffit d'envoyer son adresse

MonObjet est un CObjet
PostMessage(Handle(Fenêtre1),sMsg,&MonObjet,null)


Et dans le traitement de récupération

Procédure GereEve(sMsg,wParam,lParam)

MonObjetRécupéré est un CObjet

transfert(&MonObjetRécupéré,wParam,dimension(MonObjetRécupéré))

et tu as récupéré l'objet MonObjet déclaré avant le PostMessage dans l'objet
MonObjetRécupéré....


Pour ce qui est de ta seconde question, je ne sais pas comment on peut faire pour récupérer l'entier réellement envoyé...

En espérant t'avoir aidé
Posté le 11 avril 2005 - 10:50
Je te remercie pour ta réponse, je vais pouvoir virer toutes ces variables globales ...
Si quelqu'un connait la réponse à ma 2e question ça m'aiderait
Merci.