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

 Delphi Discussion :

Composant bouton avec menu deroulant


Sujet :

Delphi

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut Composant bouton avec menu deroulant
    Salut tous une petite question .
    Connaissez vous un composant de style bouton quand tu clic dessus un menu descend enfin un truc dans le genre ,je cherche a faire un menu déroulant sur un bouton.

    merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 043
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 043
    Points : 40 957
    Points
    40 957
    Billets dans le blog
    62
    Par défaut
    Dans la JVCL , il y a jvArrowButton qui pourrait correspondre , mais il est relativement aisé également d'utiliser (et de le positionner également) un popup menu avec un simple bitbtn
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 108
    Points : 82
    Points
    82
    Par défaut
    Dans les versions récentes de Delphi (XE2, peut-être avant), cette option est déjà présente sur les TButton ; mais elle pose des problèmes avec Windows XP par exemple.

    Donc pour le créer artisanalement, tu peux utiliser un TSpeedBtn avec un glyph représentant une flèche vers le bas.
    Et ces quelques lignes de code à placer au click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var
      pt: TPoint;
    begin
      pt.X := SpeedButton1.Left;
      pt.Y := SpeedButton1.Top + SpeedButton1.Height;
      pt := ClientToScreen(pt);
     
      PopupMenu1.Popup(pt.X, pt.Y);
    end;
    Beny

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut merci
    Super merci a tous le code est super

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut refermer
    benymypony connais tu par exemple le code pour le refermer en cliquant sur ce même bouton ?

    merci par avance

    Citation Envoyé par benymypony Voir le message
    Dans les versions récentes de Delphi (XE2, peut-être avant), cette option est déjà présente sur les TButton ; mais elle pose des problèmes avec Windows XP par exemple.

    Donc pour le créer artisanalement, tu peux utiliser un TSpeedBtn avec un glyph représentant une flèche vers le bas.
    Et ces quelques lignes de code à placer au click :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var
      pt: TPoint;
    begin
      pt.X := SpeedButton1.Left;
      pt.Y := SpeedButton1.Top + SpeedButton1.Height;
      pt := ClientToScreen(pt);
     
      PopupMenu1.Popup(pt.X, pt.Y);
    end;
    Beny

  6. #6
    Membre régulier
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Août 2006
    Messages : 108
    Points : 82
    Points
    82
    Par défaut
    Citation Envoyé par tarmo57 Voir le message
    benymypony connais tu par exemple le code pour le refermer en cliquant sur ce même bouton ?

    merci par avance
    Je n'ai pas Delphi d'ouvert là, mais j'imagine que PopupMenu à une propriété du genre "Close".

    Si c'est le cas, tu peux créer une variable boolean qui est lu lorsque l'on clique sur le bouton, et qui, selon l'état de cette boolean, ouvrirait ou fermerait le PopupMenu.

    Ce qui donnerait (code fictif) :
    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
    var
      MenuOuvert: Boolean;
    begin
      if MenuOuvert then
      begin
        // On ferme le PopupMenu1.
        // On passe la variable à False.
        MenuOuvert := False;
      end
      else
      begin
        // On ouvre le PopupMenu1 avec le code vu plus haut.
        // On passe la variable à True.
        MenuOuvert := True;
      end;
    end;
    C'est juste pour l'idée, car si tu ouvre le PopupMenu et que tu clique autre part dans la form, alors le menu se fermera sans avoir tournée la boolean à False...

    Beny

  7. #7
    Membre éprouvé Avatar de BuzzLeclaire
    Homme Profil pro
    Dev/For/Vte/Ass
    Inscrit en
    Août 2008
    Messages
    1 606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Dev/For/Vte/Ass

    Informations forums :
    Inscription : Août 2008
    Messages : 1 606
    Points : 1 113
    Points
    1 113
    Par défaut
    Salut,

    Une autre idée si tu ne souhaite pas utiliser la JVCL.

    Pose un Tpanel, ensuite dessus tu pose un Tbutton ou autre en alLeft ou alRight avec une image représentant une flêche, ensuite je laisse cours à ton imagination...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Février 2010
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 74
    Points : 76
    Points
    76
    Par défaut
    Il existe aussi avec une TToolBar le TToolButton mis en Style:tbsDropDown auquel tu peux associer un PopMenu via DropdownMenu

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 483
    Points : 128
    Points
    128
    Par défaut merci
    Merci a tous ,désolé de venir aussi tard j'étais en déplacement .
    Merci a tous pour vos idées. Bon W K

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

Discussions similaires

  1. Formulaire avec menu deroulant
    Par tipoutchi dans le forum Access
    Réponses: 3
    Dernier message: 25/03/2010, 10h41
  2. [Composant] Boutton avec menu
    Par schneidb dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 18/05/2006, 20h49
  3. [POO] Tri de photo avec menu deroulant
    Par gueno dans le forum Langage
    Réponses: 6
    Dernier message: 21/03/2006, 18h29
  4. PB avec menu deroulant
    Par vico dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 18/08/2005, 16h50

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