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

C++Builder Discussion :

Afficher un menu lors d'un click droit sur l'image


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut Afficher un menu lors d'un click droit sur l'image
    bonsoir,

    j'ai des images sur mon interface, j'aimerai ajouté un menu lorsque l'utilisateur fais un click droit sur l'image.
    Mais le pb c'est que j'utilise le bouton droit pour déplacer les images sur mon plan de travail.
    y-t'il une astuce pour ça.
    Merci

  2. #2
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Il faut que tu ajoute un composant TPopupMenu puis que tu l'associe avec ton composant TImage (tu as une propriete TPopupMenu sur le composant TImage), il ne te reste plus qu'a ajouter les choix de ton menu et remplir les fonction OnClick.

  3. #3
    Membre confirmé Avatar de bhahmed
    Inscrit en
    Août 2006
    Messages
    84
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Août 2006
    Messages : 84
    Par défaut
    comme j'ai dis j'utilse le bouton droit pour déplacé les images.
    donc quand je déplace l'image le menu s'ffiche et c'est génant.

  4. #4
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Tue peut mettre la propriété AutoPopup du Menu à false,
    détecter si ta souris bouge pendant un clic avec les evenement OnMouseDown, OnMouseMove et OnMouseUp, et si elle na pas bougé, dans OnMouseUp tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TPoint *Position = new TPoint;
    GetCursorPos(Position);
    MonPopupMenu->Popup(Position->x,Position->y) ;
    delete Position;

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Grillé! Donc pas la peine que je mette mon Post lol. J'avais la même idée que Mr Pottiez, c'est à dire travailler avec le OnMouseUp et les positions.

    Je vois qu'il y a un joli bout de code

    Bon Courage

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Comme le bouton droit est pris par le déplacement, il reste la possibilité d'utiliser conjointement les touches SHIFT, CTRL et ALT pour différencier d'autres actions. Tout dépend de la combinaison la plus logique à tes yeux.

    Par exemple :

    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    if(Button == mbRight)
        {
        if(Shift.Contains(ssShift))
            {
            //... ce qu'il faut pour déplacer les images
            }
        else
            {
            if(Shift.Contains(ssCtrl))
                {
                //un autre opération possible
                }
            else
                {
                if(Shift.Contains(ssAlt))
                    {
                    //encore une autre opération possible
                    }
                else
                    {
                    TPoint Ici;
                    //il faudra donc calculer les coordonnées écran pour le popup
                    //comme celà a été indiqué... 
                    PopupMenu->Popup(Ici.x, Ici.y); 
                    }
                }
            }
        }
    En fait, tu peux jongler comme bon te semble, y compris tenir compte d'une combinaison au niveau des touches mais dans ce cas ça devient difficile à gérer par l'utilisateur...

    A plus !

  7. #7
    Expert confirmé

    Avatar de pottiez
    Homme Profil pro
    Développeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par défaut
    Solution en message 4 :
    Citation Envoyé par pottiez
    Tue peut mettre la propriété AutoPopup du Menu à false,
    détecter si ta souris bouge pendant un clic avec les evenement OnMouseDown, OnMouseMove et OnMouseUp, et si elle na pas bougé, dans OnMouseUp tu met
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TPoint *Position = new TPoint;
    GetCursorPos(Position);
      MonPopupMenu->Popup(Position->x,Position->y) ;
    delete Position;

  8. #8
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    1 407
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 407
    Par défaut
    Salut !

    Il faut déployer logiquement :

    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
    17
    18
    19
    20
    if(Button == mbRight)
        {
        if(Shift.Contains(ssCtrl))
            {
            //...je sélectionne un chemin
            }
        else
            {
            if(Shift.Contains(ssAlt)))
                { 
                //...je supprime un lien
                }
            else
                {
                //Aucune touche (CTRL ou ALT) n'est enfoncée donc...
                //...
                //PopupMenu->Popup(...);
                }
            }
        }
    A plus !

Discussions similaires

  1. Ne pas afficher le menu lors d'un click droit
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/07/2013, 10h59
  2. [JList] afficher un menu lors d'un drag and drop
    Par skyangel dans le forum Composants
    Réponses: 4
    Dernier message: 12/03/2008, 15h16
  3. Réponses: 2
    Dernier message: 19/05/2006, 12h22
  4. Menu contextuel associé à un click droit
    Par myspirou dans le forum C++Builder
    Réponses: 1
    Dernier message: 21/04/2006, 16h19
  5. Afficher un menu contextuelle sur le click droit d'une image
    Par PrinceMaster77 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/01/2006, 12h19

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