IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Delphi Discussion :

SendMessage et WParam


Sujet :

Langage Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 60
    Par défaut SendMessage et WParam
    Bonjour,

    Je souhaite envoyer un message à une autre fenêtre à partir de la fenêtre principale avec un paramètre qui est le temps d'un chrono (double).

    Or je n'arrive pas à comprendre comment fonctionnent les paramètres Wparam et LParam

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    T:Double;
    ...
     
    SendMessage(MaForm.Handle, WM_MONMESSAGE, T, 0);
    Merci pour votre aide

  2. #2
    Membre émérite
    Avatar de Montor
    Homme Profil pro
    Autre
    Inscrit en
    Avril 2008
    Messages
    879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 879
    Par défaut
    Si cette fenêtre est Dans le même processus

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SendMessage(MaForm.Handle, WM_MONMESSAGE, Longint(@T), 0);
    si non
    utilise WM_COPYDATA

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 60
    Par défaut
    Super merci.

    Dans ma procédure récupérant le message dans l'autre form, comment faire pour récupérer la valeur de T ?

    Edit :
    Je pense avoir trouvé la réponse, en tout cas le résultat est bon :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    T:double;
    ...
    procedure MaProc(var M: TMessage); message WM_MONMESSAGE;
    ...
    procedure TMaForm.MaProc (var M: TMessage);
    T := PDouble(M.WParam)^
    Merci

  4. #4
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par DuffNut Voir le message
    Super merci.

    Dans ma procédure récupérant le message dans l'autre form, comment faire pour récupérer la valeur de T ?
    PDouble(wParam)^

    le principe est ici d'utiliser wParam comme un pointeur vers la variable T
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2010
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2010
    Messages : 60
    Par défaut
    PDouble(wParam)^

    le principe est ici d'utiliser wParam comme un pointeur vers la variable T
    Oui merci j'ai édité mon post en même temps

  6. #6
    Membre Expert Avatar de guillemouze
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    876
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2004
    Messages : 876
    Par défaut
    attention tout de meme, si tu utilise PostMessage (asynchrone) plutot que SendMessage, ta variable T risque de ne plus exister.
    Autre solution, pas tres propre, c'est de decouper ton double (8 octets) en 2 int (4 octets) : LParam et WParam. Par contre c'est loin d'etre élégant.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. sendmessage & wparam, lparam
    Par Ludo_360 dans le forum Delphi
    Réponses: 2
    Dernier message: 03/05/2007, 12h53
  2. DLL et SendMessage
    Par LordBob dans le forum MFC
    Réponses: 5
    Dernier message: 12/05/2005, 18h35
  3. Réponses: 19
    Dernier message: 10/05/2005, 10h44
  4. sendmessage()
    Par benoit70 dans le forum MFC
    Réponses: 27
    Dernier message: 22/01/2004, 13h45
  5. SendMessage bloquant l'exécution du programme
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 03/05/2003, 19h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo