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

Windows Discussion :

[TCombobox] Changer son positionnement vertical


Sujet :

Windows

  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut [TCombobox] Changer son positionnement vertical
    Bonjour,
    Par manque de place dans ma fiche, je suis contraint de minimiser un Combobox au-delà de la taille de sa liste.

    Le problème est que la taille de la liste du Combobox est égale à la taille du Combobox, pour cela ca va. J'utilise SendMessage pour augmenter la taille de la liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SendMessage(Acte_Edt.Handle,CB_SETDROPPEDWIDTH,375,0);
    Mon vrai problème est que mon Combobox frôle le bord droit de l'écran, donc, ma liste sort de la plage graphique (pensait que c'était Windows qui gérait ca... bhein non).

    Donc, quel message puis-je envoyer à mon Combobox pour changer la coordonée X (verticale) afin que la liste par du coté gauche.


    Merci d'avance et sorry si je n'ai pas été assez clair.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    C'est du Delphi ou du BCB ?

  3. #3
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Delphi, j'ai préféré le mettre dans ce forum vu que la solution est en rapport avec API Windows.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    En Win32 on déplace une fenêtre avec SetWindowPos / MoveWindow. Mais normalement tu n'as pas besoin de ça, ni de SendMessage, TCombobox doit sûrement encapsuler ça proprement.

  5. #5
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Non, certain...
    On a pas la main sur la liste.

    Pour WindowPos ou MoveWindow , il faudrait avoir le Handle de la liste associé au Combobox et c'est chaud.

  6. #6
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Attends je crois que je comprends mieux. Tu veux que la liste qui descend et dont le bord gauche est aligné avec celui du combo-box soit alignée avec le combo-box sur le bord droit ?
    Je ne me souviens pas avoir croisé un jour un tel comportement. Je ne pense pas que ce soit possible, à moins peut être avec WS_EX_RIGHT qui setr à afficher de roite à gauche pour les langues genre l'Arabe, mais si ça marche ton texte sera aligné à droite...
    Défini plutot sa largeur à celle du combobox avec une petite réglette qui permet de scroller horizontalement.

  7. #7
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    En effet c'est ca.

    En gros, je voudrai bien que la liste s'affiche comme les TPopupMenu.
    On peut faire l'exemple sur le bureau... De n'importe où que l'on click droit sur le bureau, le menu sera tj dans la surface de l'écran. Il s'affichera soit :
    - De (gauche-Haut)-->(Droite-Bas)
    - De (Droit-Haut)-->(Gauche-Bas)
    - De (Gauche-bas)-->(Droite-Haut)
    - De (Droite-Bas)-->(Gauche-Haut)

    Je dois trouvé absolument un moyen....

    Merci pour ton aide

  8. #8
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Ben oui faut créer ton controle perso...

  9. #9
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Ben oui faut créer ton controle perso...
    Mway, facile à dire

  10. #10
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    Est ce qu'un gentil modérateur peut déplacer ce post dans le forum Delphi s'il vous plaît.


    Merci

  11. #11
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par portu
    Est ce qu'un gentil modérateur peut déplacer ce post dans le forum Delphi s'il vous plaît.


    Merci
    Aurélien a raison et personne ne te répondra dans le forum Delphi ou du moins on te répondra la même chose : il faut faire un contrôle personnalisé qui hérite des propriétés et méthodes de TComboBox.
    La VCL fournit des composants de base ,c 'est au développeur de les modifier par lui-même.
    Sinon tu peux modifier le code source de la VCL et la reconstruire ( reconstruire les paquets ) ce qui est extrêmement déconseillé

  12. #12
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    C'est bon , j'ai trouvé.

    Nin besoin de créer un compo pour celà (En fait, j'avoue que je ne sait pas faire de compo ).

    Mais bon, j'ai trouvé le moyen pour connaitre le Handle de la liste d'un combobox et grâce à son Handle, je peux lui faire plus ou moins ce que je veux dont le déplacer.

    A+ et merci à tous

  13. #13
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    Et comment fais-tu alors ?

  14. #14
    Membre éclairé

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 085
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 085
    Points : 886
    Points
    886
    Par défaut
    J'ai trouvé le moyen de connaitre le Handle du ComboLBox surTorry .

    Une fois que le Handle est intercepté, je déplace la liste avec la fonction SetWindowPos.

    Voilà .

  15. #15
    Expert éminent sénior

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 751
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 751
    Points : 10 670
    Points
    10 670
    Billets dans le blog
    3
    Par défaut
    J'aurais plutot tenté un FindWindowEx avec le combobox en parent et 'ComboLBox' directement en nom de class. Par contre l'utilisation de PostMessage est astucieuse, je ne voyais pas comment faire sans passer par un timer ou un hook.
    Sache que c'est non documenté donc sans garantie, vis à vis du futur en particulier. Mais bon à priori ça risque rien.

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

Discussions similaires

  1. <object> : récupérer son parent / changer son contenu
    Par benj63 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 04/05/2006, 18h24
  2. Renomer un fichier/changer son extention
    Par miron dans le forum C
    Réponses: 8
    Dernier message: 01/05/2006, 17h14
  3. Changer son pseudo msn à l'aide de Perl
    Par FoxDragon dans le forum Web
    Réponses: 1
    Dernier message: 05/04/2006, 08h33
  4. changer son adresse IP en c++ builder
    Par jamescook dans le forum C++Builder
    Réponses: 4
    Dernier message: 30/12/2005, 21h17
  5. [IB] Autoriser 1 user à changer son mot de passe
    Par qi130 dans le forum InterBase
    Réponses: 7
    Dernier message: 01/02/2005, 14h09

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