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 :

Séparateur de ligne dans un ComboBox


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut Séparateur de ligne dans un ComboBox
    Bonjour,

    Je souhaite grouper les items les + fréquemment appelés dans un ComboBox dans la première partie de la liste et les séparer des autres items par une ligne continue.

    Comment faire ?

    Merci.

  2. #2
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ComboBox1.Items.Add('--------')
    Pour faire remonter les elemets les plus frequement utilisé il te faudra garder dans un coin de la memoire un compteur par elements et effectuer un tri dessus pour ajouter a la combobox les element par ordre decroissant d'usage.

    Tu peux raffaichir ta liste sur l'evenement OnDropDown ou assimilé.

    Pour faire plus "pro" il te faudra utiliser la property OwnerDrow et dessiner toi meme les lignes de ta combobox sur l'evenement OnDrawItem si je me souviens bien.

  3. #3
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut
    Merci pour ta réponse Clorish

    Je n'ai pas envie de mettre des série de tirets . Donc, en fait, c'est bien cette dernière idée qu'il me reste à appliquée et que je ne maitrise pas (pour le reste de tes propositions, c'était déjà fait !!) :

    Pour faire plus "pro" il te faudra utiliser la property OwnerDrow et dessiner toi meme les lignes de ta combobox sur l'evenement OnDrawItem si je me souviens bien.
    Help ?

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 120
    Par défaut
    SAlut

    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
    17
    18
    procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
      Rect: TRect; State: TOwnerDrawState);
    Var DebutLigne, FinLigne : TPoint;
    begin
         If ComboBox1.Items[Index] = '--' Then //On trace une ligne
         begin
              DebutLigne.y := Rect.Top + ((Rect.Bottom - Rect.Top) Div 2);
              DebutLigne.X := Rect.Left;
              FinLigne.Y := DebutLigne.y;
              FinLigne.X := Rect.Right;
              ComboBox1.Canvas.PenPos := DebutLigne;
              ComboBox1.Canvas.LineTo(FinLigne.X,FinLigne.Y);
         end
         Else
         begin
              ComboBox1.Canvas.TextOut(Rect.Left,Rect.Top,ComboBox1.Items[Index]);
         end;
    end;
    J'ai fais au plus simple a toi d'ameliorer pour, par exemple, tracer un joli trait qui ai du relief (fait une capture d'ecran et observe, c'est juste des traits de differentes couleurs posés les uns en dessous des autres).

    Aplus
    Qwaz

    Ps comme dit plus haut pense a mettre style sur OwnerDraw

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Membre Expert
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Par défaut
    Citation Envoyé par Qwazerty Voir le message
    J'ai fais au plus simple a toi d'ameliorer pour, par exemple, tracer un joli trait qui ai du relief (fait une capture d'ecran et observe, c'est juste des traits de differentes couleurs posés les uns en dessous des autres).

    Aplus
    Qwaz

    Ps comme dit plus haut pense a mettre style sur OwnerDraw
    pas mieux

  6. #6
    Membre chevronné Avatar de archonte
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    343
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 343
    Par défaut
    Merci à vous 2 !

    en fait, je ne pensais pas que les Canvas se manipulaient si facilement
    J'ai essayé avec plusieurs traits / des couleurs / ... parfait ! et très simple !

    Une dernière question avant de mettre un : comment empêcher la sélection de la ligne de séparation dans le CB ?

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

Discussions similaires

  1. Limite de lignes dans un combobox
    Par stargates01 dans le forum VBA Access
    Réponses: 3
    Dernier message: 26/01/2012, 17h02
  2. Probléme pour effacer une ligne dans ma combobox
    Par scorpionrun dans le forum VB.NET
    Réponses: 2
    Dernier message: 20/08/2009, 11h18
  3. rajouter des lignes dans la combobox
    Par levac dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 23/05/2007, 09h38
  4. Séparateur de ligne dans un mail
    Par defluc dans le forum Delphi
    Réponses: 12
    Dernier message: 09/08/2006, 15h03
  5. sauter une ligne dans une ComboBox
    Par guigui5931 dans le forum IHM
    Réponses: 3
    Dernier message: 09/06/2006, 11h03

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