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

Composants VCL Delphi Discussion :

ComboBox.DropDownCount, comportement différent entre 2000 et XP


Sujet :

Composants VCL Delphi

  1. #1
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 679
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 679
    Points : 12 347
    Points
    12 347
    Par défaut ComboBox.DropDownCount, comportement différent entre 2000 et XP
    Bonjour à tous.

    Le code suivant fonctionne parfaitement bien sous 2000, (ie, comportement normal d'un ComboBox, on clique sur la flèche et la liste s'affiche) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.FormCreate(Sender: TObject);
    var
      i : integer;
    begin
      for i := 7 to 22 do
      begin
        cbb.Items.Add(Format('%2.2d', [i]) + '.00');
        cbb.Items.Add(Format('%2.2d', [i]) + '.15');
        cbb.Items.Add(Format('%2.2d', [i]) + '.30');
        cbb.Items.Add(Format('%2.2d', [i]) + '.45');
        cbb.DropDownCount := cbb.Items.Count;
      end;
    end;
    mais sous XP la liste s'affiche et se referme aussitôt !
    Faut garder le clic appuyé sur la flèche pour pouvoir choisir une valeur, et une fois la valeur choisie, la flèche garde le look « enfoncé »...
    Testé sur 2 machines différentes...

    Une idée, quelqu'un ?
    Merci d'avance,
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  2. #2
    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 : 33
    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
    Points : 4 643
    Points
    4 643
    Par défaut
    Salut,

    J'ai réussi à reproduire l'erreur ...

    Ton combobox comporte beaucoup d'entrées et lorsqu'on clic dessus, la liste déroulante est OK sauf que si elle dépasse de la Form qui l'appelle, on a l'effet que tu as ...

    Essaie de mettre ta form en plein écran et voit ce que ca fait

  3. #3
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 679
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 679
    Points : 12 347
    Points
    12 347
    Par défaut
    Salut, ero-sennin, et merci de te pencher sur ce problème.

    Suivant tes conseils, j'ai retaillé ma form de manière à ce qu'elle soit plus grande que la liste déroulée, et j'ai mis Form1.WindowState à wsMaximized dans l'inspecteur d'objets.
    Mais malgré ça, même comportement...

    La solution consiste à positionner le ComboBox en haut de la form, de manière à ce que la liste déroulante se déroule exclusivement vers le bas ! (dans mon premier essai, la liste se déroulait au-dessus et au-dessous du ComboBox)

    À retenir, donc !

    Merci à toi de m'avoir mis sur cette piste,
    --
    jp
    [edit] PS : le fait de corriger le bug (j'ai fait ça tard..., ) de mon premier post n'avait rien arrangé : il faut bien sûr mettre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        cbb.DropDownCount := cbb.Items.Count;
    après la boucle, [/edit]
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

  4. #4
    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 : 33
    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
    Points : 4 643
    Points
    4 643
    Par défaut
    En effet, j'avais pas fait attention ... j'avais mis mon composant tout en haut ...

    Donc la véritable raison est que la liste ne doit être en dessus de la listbox et uniquement vers le bas...
    [EDIT : Tu as donné la solution, je me répète )

    Merci pour l'info, je garde celà de coté

  5. #5
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    juillet 2006
    Messages
    8 679
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : juillet 2006
    Messages : 8 679
    Points : 12 347
    Points
    12 347
    Par défaut
    Arf, je me cite :
    Citation Envoyé par Jipété Voir le message
    La solution consiste à positionner le ComboBox en haut de la form, de manière à ce que la liste déroulante se déroule exclusivement vers le bas ! (dans mon premier essai, la liste se déroulait au-dessus et au-dessous du ComboBox)
    Et je précise, puisque je viens de faire l'essai à l'instant sur une machine dont l'affichage est réglé sur 1024 x 768, ie, trop petit en hauteur pour contenir tous les items du ComboBox, qu'il faut absolument que la liste ait suffisament de place pour s'afficher en entier et vers le bas, sinon le problème se manifeste.
    --
    jp
    Il a à vivre sa vie comme ça et il est mûr sur ce mur se creusant la tête : peutêtre qu'il peut être sûr, etc.
    Oui, je milite pour l'orthographe et le respect du trait d'union à l'impératif.
    Après avoir posté, relisez-vous ! Et en cas d'erreur ou d'oubli, il existe un bouton « Modifier », à utiliser sans modération
    On a des lois pour protéger les remboursements aux faiseurs d’argent. On n’en a pas pour empêcher un être humain de mourir de misère.
    Mes 2 cts,
    --
    jp

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/04/2010, 20h39
  2. Comportement différent entre IE6 et IE7
    Par Zeo34 dans le forum Intégration
    Réponses: 1
    Dernier message: 12/11/2008, 13h24
  3. Réponses: 12
    Dernier message: 26/10/2007, 17h27
  4. [AJAX] Comportement différent entre IE et FF2
    Par pacopau dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 14/02/2007, 20h18
  5. Comportement différent entre un bouton et une image
    Par MicheMTP13 dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 07/11/2005, 09h47

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