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

Composants VCL Delphi Discussion :

[MDI] Savoir sur quel child l'utilisateur a cliqué


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut [MDI] Savoir sur quel child l'utilisateur a cliqué
    Bonjour,

    Dans une forme de type MDI, j'ouvre plusieurs autres formes qui sont des sortes de graphiques. Mon objectif est de permettre à l'utilisateur de cliquer sur une courbe dans un graphique et de la déplacer dans un autre graphique.

    Pour cela, je dois savoir où l'utilisateur lâche la souris. Je connais les coordonnées, mais comment en déduire la fenêtre à utiliser d'après ces coordonnées ?

  2. #2
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Bonjour,

    1) Utiliser la fonction "GetForegroundWindow" pour récupérer le handle de la fenètre correspondant à des coordonnées X, Y (celles du curseur).

    2) Utiliser "GetWindowText" avec ce handle pour obtenir le titre de la fenêtre.

  3. #3
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    Salut,

    Apparement la fonction getForegroundWindow retourne la fenêtre active :
    The GetForegroundWindow function returns a handle to the foreground window (the window with which the user is currently working).
    Ou alors je ne vois pas où utiliser les coordonnées de la souris (X,Y).

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Ton composant qui fait les graphiques et celui qui le recoit n'a pas d'évènement drag and drop ?
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    Citation Envoyé par Malatar
    Ton composant qui fait les graphiques et celui qui le recoit n'a pas d'évènement drag and drop ?
    Malheureusement je suis obligé de mettre la propriété 'DragMode' à 'dmManual' au lieu de 'dmAutomatic', ce qui fait que je dois gérer manuellement le drag and drop (ce qui me permet de gérer certains aspects, comme le déplacement des axes de mon graphe, etc.).

    Donc je ne peux pas utiliser la fonctionnalité drag&drop de mes graphes. Il me faut donc déterminer la fenêtre où j'ai lâché la souris via une autre méthode...

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Pourquoi tu ne fait aps le contraire ?
    La fenêtre destination qui gère la reception au lieu de l'inverse. (vu que tu dois gérer en manuel le drag and drop)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    Je dois de toute façon gérer un événement dans la fenêtre source et dans celle de destination :

    Source : lorsque je clique sur une courbe de mon graphe, je retiens la courbe sélectionnée

    Destination : je rajoute la courbe sélectionnée dans le graphe de destination.

    Mon problème est que lorsque je lâche la souris, je ne sais pas dans quelle graphe je me trouve.
    En effet, si je clique sur un graphe et que je laisse le bouton de la souris enfoncé, lorsque je le relâche c'est l'événement 'onMouseUp' du graphe-source qui est activé, et non celui de destination.

  8. #8
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 236
    Par défaut
    Quel est le composant graphique que tu utilises ? (TChart ?)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  9. #9
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    Citation Envoyé par Malatar
    Quel est le composant graphique que tu utilises ? (TChart ?)
    C'est un composant acheté, hérité de TChart mais avec plus de fonctionnalités.

  10. #10
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 422
    Par défaut
    J'ai finalement résolu le problème d'une manière un peu détournée : dans l'événement 'onMouseUp' de mon graphe, je simule un click de souris de cette manière :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    (avec un flag pour éviter de créer une boucle infinie). Ainsi je sélectionne la fenêtre où l'utilisateur a lâché sa courbe et je peux la rajouter.

    Merci quand même à ceux qui ont tenté de m'aider

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

Discussions similaires

  1. Savoir sur quel bouton créé dynamiquement l'utilisateur a cliqué
    Par Pierre Fauconnier dans le forum Contribuez
    Réponses: 8
    Dernier message: 05/08/2011, 12h54
  2. Savoir sur quel bouton l'utilisateur a cliqué
    Par yearling05 dans le forum VBScript
    Réponses: 1
    Dernier message: 11/01/2011, 20h43
  3. Savoir sur quel élément l'utilisateur a cliqué
    Par samche dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/08/2010, 14h13
  4. Savoir sur quel bouton l'utilisateur a cliqué
    Par l_seringa dans le forum C++Builder
    Réponses: 2
    Dernier message: 28/05/2008, 00h36
  5. savoir sur quel bouton l'utilisateur clique
    Par Mihalis dans le forum Delphi
    Réponses: 4
    Dernier message: 13/06/2007, 21h07

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