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 :

Maitriser la hauteur d'une combobox


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut Maitriser la hauteur d'une combobox
    Bonjour.

    Je voudrais pouvoir maitriser la hauteur d'une combo.
    Sa propriété Height semble être d'un minimum de 21 (si on conserve la police standard).
    Est-il possible de modifier à la baisse cette hauteur sans changer pour autant la police de caractère.
    Je souhaite imiter le comportement des combos présentes dans l'inspecteur d'objet dédié à la saisie des propriétés.
    Merci pour l'aide.

    Nicolas

  2. #2
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    Salut, essai d'utiliser l'évènement OnMeasureItem de ton combobox. Il y a un paramètre Height.

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    J'ai essayé avec cet événement mais le résultat n'est vraiment pas probant.
    Merci de ta réponse.

  4. #4
    Membre émérite
    Avatar de free07
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardèche (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 941
    Par défaut
    Citation Envoyé par engi Voir le message
    Bonjour.

    Je voudrais pouvoir maitriser la hauteur d'une combo.
    Sa propriété Height semble être d'un minimum de 21 (si on conserve la police standard).
    Est-il possible de modifier à la baisse cette hauteur sans changer pour autant la police de caractère.
    Je souhaite imiter le comportement des combos présentes dans l'inspecteur d'objet dédié à la saisie des propriétés.
    Merci pour l'aide.

    Nicolas
    Est ce vraiment la hauteur de la combo que tu veux modifier ou sa zone d'édit ?
    car sinon c'est la propriété ItemHeight de la combo qu'il faut modifier.

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    C'est bien la hauteur totale de la combo que je souhaite réduire, pour la faire tenir dans la cellule d'une grille de saisie qui ne fait que 15 pixels de hauteur...
    Au départ, j'avais essayé en modifiant la police et en réduisant la taille de cette dernière mais c'est vraiment illisible sur des écrans paramétrés en haute def.
    Ça doit être possible puisque c'est le cas dans l'inspecteur d'objets de Delphi/Builder.
    A moins qu'il ne faille tout redessiner manuellement ?

  6. #6
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par défaut
    engi, est-ce que tu as lu le lien que j'ai mis. Il faut que ton combobox ait le style csOwnerDrawVariable, sinon l'évènement n'est jamais appelé.

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Salut engi
    Comme Crayon l'a dit il suffit de lire ses posts je cite " essai d'utiliser l'évènement OnMeasureItem de ton combobox", il faut que ton combobox ait le style csOwnerDrawVariable "
    et cela fonctionne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void __fastcall TForm1::ComboBox1MeasureItem(TWinControl *Control,
          int Index, int &Height)
    {
    // on recupere la hauteur d'origine
    Label2->Caption = Height;
    // on regle la nouvelle hauteur
    Height = 13;
    }

  8. #8
    Membre éclairé
    Inscrit en
    Avril 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Avril 2004
    Messages : 249
    Par défaut
    Effectivement, j'avais testé une fois mais cela ne fonctionnait pas.
    Je viens de le refaire et cette fois, tout fonctionne comme décrit.
    Merci !

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

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. [Memo] Hauteur d'une ligne
    Par Linkin dans le forum Composants VCL
    Réponses: 2
    Dernier message: 06/10/2004, 14h18
  3. [VB6] largeur d'une zone de liste d'une combobox
    Par Nick13 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 28/08/2004, 12h30
  4. Réponses: 2
    Dernier message: 26/07/2004, 13h34
  5. Pré-sélectionner un élément d'une combobox
    Par delphim dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/06/2003, 15h26

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