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 :

Cacher des élément d'un combobox


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 30
    Points
    30
    Par défaut Cacher des élément d'un combobox
    Bonjour,
    je voudrais savoir comment s'y prendre pour cacher des éléments d'un combobox.

    par exemple si quelque chose cache les items 0 à 2 ...

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Pourquoi ne pas les enlever tout simplement puis les remettre lorsque tu en as besoin.

    L'idée générale :
    - déclarer un array pour mémoriser les items et leurs emplacements dans la combo
    - Supprimer l'Item et placer son contenu et sa position dans le tableau
    - Et pour le remplacer réinsérer l'item en se servant des données du tableau.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 30
    Points
    30
    Par défaut
    c'est possible d'avoir un petit exemple, parce que je débute de chez débute et j'ai de la peine à imager tout ça

    merci d'avance

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Délcaration du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    TMemoire = record
    Index : integer;
    Valeur : string;
    end;
    Une petite variable globale pour y avoir accès de partout
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var TabMemoire : array of TMemoire;
    NbMemoire : integer;
    Il faudra Initialiser NbMemoire à 0

    La suppression (de l'item 2 par exemple)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SetLength(TabMemoire,NbMemoire);
    TabMemoire[NbMemoire - 1].Index := 2;
    TabMemoire[NbMemoire - 1].Valeur := MaCombo.Item.Strings[2];
    MaCombo.Items.Delete(2);
    Pour remettre (l'item 2 par exemple)
    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
    19
    20
    21
    22
    23
     
    i := 0;
    arret := False;
    // recherche de L'item dans le tableau
    while (i<NbMemoire) do
    begin
    if (TabMemoire[i].Index = 2) then arret := True
    else Inc(i);
    end;
    // fin recherche
    if (arret) then
    begin
    // Ajout de L'item
    MaCombo.Items.Add(TabMemoire[i].Valeur);
    // remet l'item à sa place
    for j := MaCombo.Items.Count - 1 downto 2-1 do
    begin
    stTemp := MaCombo.Items.Strings[j];
    MaCombo.Items.Strings[j] := MaCombo.Items.Strings[j - 1];
    MaCombo.Items.Strings[j - 1] := StTemp;
    end;
    // Fin de remise en place
    end;

  5. #5
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Salut;

    une autre façon de voir les choses. places deux combo superposés et joue avec la variable visible.

    seulement si tes éléments sont dynamiques faut recourir à taper du code.

    Bon codage.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  6. #6
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Et avec un filtre ?
    Tu remplaces ta combobox par TDBLookupcomboBox.

    Puis tu filtre les éléments de la liste liée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    TForm1 = class( tform)
       SourceListeCombo : TDatasource;
       DataListeCombo : TClientDataset;
    end;
     
    implementation
     
    procedure TForm1.Filtrage;
    begin
        maCombo.ListeSource.Dataset.Filtre := ....;
        maCombo.ListeSource.Dataset.Filtered := false;
    end;
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 30
    Points
    30
    Par défaut
    Edit: je recommence tout, parce que quelque chose à changé dans ma base et je vais avoir 3 solutions, je me lance dans le filtre.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 30
    Points
    30
    Par défaut
    Bon alors voilà mon idée, j'ai une combobox qui me donne la couleur d'une ceinture. ensuite je pensais utiliser un DbLookUpComboBox pour le nombre de barette et appliquer un filtre dessus, comme ça par exemple lorsque je sélectionne bleu dan ma combobox il me met le choix de 0 ou 1 barette, et quand je met jaune je peux choisir 0,1 ou 2 barette.

    mais je ne sais pas comment faire le filtre, quelqu'un a une petit idée ?

    merci d'avance

  9. #9
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    difficile de répondre sans la structure des données
    Une réponse qui marche toujours

    Crée plusieurs ensembles avec les MÊMES champs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
      case ceinture of
        1 :  maCombo.ListeSource.Dataset := EnsembleJaune;
        2 : maCombo.ListeSource.Dataset := EnsembleRouge;
      end;
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    57
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2008
    Messages : 57
    Points : 30
    Points
    30
    Par défaut
    j'ai une table nomée Grade avec le numéro de grade, la couleur de la ceinture et le nombre de barrette

  11. #11
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Alors un truc du genre positionner sur le Onchange ta combo couleur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     if Not VarIsnull(macombocouleur.keyvalue) then
       maComboBarette.ListeSource.Dataset.Filtre   := 'grade.couleur = ' + VartoStr(macombocouleur.keyvalue)
     else maComboBarette.ListeSource.Dataset.Filtre   := '';
     
     maComboBarette.ListeSource.Dataset.Filtered := (maComboBarette.ListeSource.Dataset.Filtre <> '');
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  12. #12
    Membre émérite
    Homme Profil pro
    Directeur technique
    Inscrit en
    Mai 2008
    Messages
    2 401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2008
    Messages : 2 401
    Points : 2 304
    Points
    2 304
    Par défaut
    Re;

    Reste toujours utile de savoir si notre ami utilise une base de données ou une liste d'un fichier texte ou seulement la propriété Items du combobox.

    Bon codage.
    Bon courage ou Bonne Chance (selon le contexte)
    Mon blog sur WordPress

  13. #13
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Citation Envoyé par Kelloucheaeh Voir le message
    Re;

    Reste toujours utile de savoir si notre ami utilise une base de données ou une liste d'un fichier texte ou seulement la propriété Items du combobox.

    Bon codage.
    Le sait-il ?
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  14. #14
    Membre éprouvé Avatar de Yurck
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 15
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2005
    Messages : 682
    Points : 912
    Points
    912
    Par défaut
    Excuse moi Blagueur je ne savais pas que tu écoutais.

    Maintenant il est vrai qu'une question mal posée ne donne pas toujours (souvent ?) de bonnes réponses.

    Mais bon il faut bien débuter et n'est-on pas dans le forum "Débutant" ?
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  15. #15
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Je viens de m'appercevoir que 3 des sujets auquel j'ai répondu (ou essayé de répondre) concernait un projet avec des grade, des couleurs et des barrettes.

    M'est avis que vous n'irez pas bien loin dans vos études si vous cherchez la facilité en laissant les gens du forum faire vos devoir scolaires à votre place

Discussions similaires

  1. Police différente des éléments d'un combobox
    Par gangsterus dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/04/2008, 13h46
  2. Cacher des éléments dans une zone de liste
    Par toto10 dans le forum IHM
    Réponses: 11
    Dernier message: 19/07/2006, 15h03
  3. Cacher les éléments d'une ComboBox ?
    Par Alexino2 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 20/05/2006, 14h56
  4. Afficher/cacher des éléments de type select en fonction d'autres
    Par GLDavid dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/04/2006, 10h06
  5. pb afficher cacher des éléments
    Par fongus dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 04/04/2006, 13h34

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