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 :

Modification de la position de la liste d�roulante d'une Combobox


Sujet :

C++Builder

  1. #1
    Membre averti Avatar de Shionigami
    Inscrit en
    Novembre 2006
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par d�faut Modification de la position de la liste d�roulante d'une Combobox
    Bonjour,

    Je suis actuellement en train de d�velopper une application sous C++ Builder 6 dans laquelle je me sers de ComboBox pour s�lectionner des informations, me permettant de filtrer les donn�es contenues dans un StringGrid.

    J'arrive � faire en sorte que lorsque la liste d�roulante apparait, elle soit de la taille de la plus longue chaine de caract�res contenue dans la liste.
    Cependant, mon probl�me est le suivant : lorsqu'une combobox est proche de la droite de l'�cran, les informations sont tronqu�es, car en dehors de l'�cran.

    J'aimerai savoir s'il est possible de faire en sorte que la liste d�roulante sois align�e sur la droite de la Combobox plutot que sur la gauche ? J'ai d�j� fait le tour de pas mal de site et forum et je n'ai rien trouv� de concluant...

    Merci par avance.

  2. #2
    Membre Expert
    Avatar de sat83
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Mars 2004
    Messages
    1 040
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 040
    Par d�faut
    Pour agrandir la taille des items de la liste:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
      ComboBox1->Perform(CB_SETDROPPEDWIDTH, 300, 0);
    //ou
      SendMessage( ComboBox1->Handle, CB_SETDROPPEDWIDTH, 300, 0);
    [EDIT] Pardon, j'avais mal lu la question, ce n'est pas ce que tu demande, apparemment tu le savait d�j�...

  3. #3
    Membre averti Avatar de Shionigami
    Inscrit en
    Novembre 2006
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par d�faut
    Je joins deux images qui illustrent mes propos.

    La premi�re montre le r�sultat que j'ai lorsque je d�roule ma liste... la seconde est un montage que j'ai fait pour montrer le r�sultat que je souhaite obtenir
    Images attach�es Images attach�es   

  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 Shionigami Voir le message
    Je joins deux images qui illustrent mes propos.

    La premi�re montre le r�sultat que j'ai lorsque je d�roule ma liste... la seconde est un montage que j'ai fait pour montrer le r�sultat que je souhaite obtenir
    Je pense que tu es oblig� de passer par l'�v�nement OnDrawItem()
    et �crire :

    ...
    MaComboBox->Canvas->TextOut(Rect.Left, Rect.Top, MaComboBox->Items->Strings[Index]);

    Je dis cela de m�moire, et actuellement je n'ai pas BC++ pour v�rifier mais il doit y avoir un moyen avec TextOut pour justifier le texte � droite.

    C'est peut �tre une piste, � voir...

  5. #5
    Membre tr�s actif Avatar de nirgal76
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Septembre 2007
    Messages
    924
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 924
    Par d�faut
    La partie d�roulante �tant une fen�tre windows elle aussi, tu peux trouver son handle de fen�tre (en �num�rant les fen�tres filles du combobox) et la d�placer ensuite avec une fonction comme SetWindowPos. reste � trouver le bon moment pour faire tout �a
    C'est deja ce que fait le TComboBox en interne dans la fonction "AdjustDropDown" (appel�e dans le traitement du message CBN_DROPDOWN) sauf que lui, il a deja le handle puisqu'il l'a cr��, pas besoin de le rechercher (cf. stdctrls.pas)

  6. #6
    Membre averti Avatar de Shionigami
    Inscrit en
    Novembre 2006
    Messages
    41
    D�tails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 41
    Par d�faut
    Ok merci pour ces pistes !

    Pour le moment je suis pass� � autre chose (je vais pas rester sur un telle probl�me non plus hein ), donc j'essaierai plus tard, et vous tiendrai au courant

  7. #7
    Membre exp�riment�

    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    288
    D�tails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2003
    Messages : 288
    Par d�faut
    Les message CB_SETDROPPEDWIDTH permet de modifier la largeur de la liste d�roulante d'une combo:

    http://msdn.microsoft.com/en-us/libr...01(VS.85).aspx

    cf. SetDroppedWidth dans les MFC (qui encapsule ce message).

Discussions similaires

  1. Modification de liste d�roulante dans une requ�te access
    Par Barbare01 dans le forum Requ�tes et SQL.
    R�ponses: 5
    Dernier message: 10/12/2014, 10h05
  2. Modification d'une liste d�roulante depuis une autre fen�tre ouvertre
    Par dirty_harry dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 03/06/2009, 14h38
  3. simulation de la list d�roulante d'une combobox
    Par CAMIC dans le forum Windows
    R�ponses: 2
    Dernier message: 07/05/2008, 11h08
  4. Griser 1 liste d�roulante li�e � une autre, pb de concat�nat
    Par linou dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 29/03/2005, 16h45
  5. [composant] liste d�roulante pour une propri�t� ?
    Par BoBoToTo dans le forum Composants VCL
    R�ponses: 4
    Dernier message: 24/05/2004, 16h16

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