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 ...
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 ...
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.
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
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
Délcaration du type
Une petite variable globale pour y avoir accès de partout
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 TMemoire = record Index : integer; Valeur : string; end;
Il faudra Initialiser NbMemoire à 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 var TabMemoire : array of TMemoire; NbMemoire : integer;
La suppression (de l'item 2 par exemple)
Pour remettre (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);
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;
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
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
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
Edit: je recommence tout, parce que quelque chose à changé dans ma base et je vais avoir 3 solutions, je me lance dans le filtre.
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
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
j'ai une table nomée Grade avec le numéro de grade, la couleur de la ceinture et le nombre de barrette
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
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
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
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
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager