Bonjour à tous,
Avant toutes choses, et avant de me faire lincher j'ai bien parcourus les differents sujets traitant des picklist dans les DBGrid et les informations que j'ai pu trouver sur Internet, mais malheureusement ca ne fonctionne toujours pas pour ma part.
Je vais vous expliquer le plus clairement possible ce que je souhaite faire. Ma fenetre propose une DBGrid dans laquelle le premier champs est un numéro (de 1 a n, prenons n=8) qui est récupéré dans une base Paradox. Le deuxieme champs est celui ou je voudrais qu'il y ai la PickList (les données à mettre dans cette picklist sont aussi dans une table). Enfin un champ caché qui est la clé primaire de la premiere table intérogé (ca n'a pas grand importance mais je le dis qd meme).
L'affichage fonctionne correctement, seulement je n'ai pas de Picklist lorsque j'essaye d'editer la colonne N°2 nommé "Nom". La N°1 est "Numéro".
Voile le code que j'utilise pour ca:
La premiere colonne est rempli directement par un composant que j'ai posé sur ma fenetre (en edition graphique).
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 procedure TFAjouterParticipantsImposes.SetupGridPickList; var qImposes : TQuery; begin qImposes := Tquery.Create(nil); qImposes.DataBaseName :='Piscine'; qImposes.SQL.Add('SELECT Nom_impose FROM imposes WHERE categorie = :id_categorie'); qImposes.ParamByName('id_categorie').AsInteger := FAjouterParticipants.id_categorie; qImposes.Open; while not qImposes.Eof do begin DBGrid1.Columns[2].PickList.Add(qImposes.FieldByName('Nom_impose').AsString); qImposes.Next; end; qImposes.Free; end;
J'ai les options suivantes pour ma DBGrid:
Voila. J'ai essayé de donner le max d'informations. Je viens de passer un nombre d'heure incalculable la dessus, et quand je vois que personne n'a vraiment de probleme pour les mettre en place (les picklist) je commence a desespererdgEditing, dgAlwaysShowEditor, dgTitles, dgRowLines, dgTabs
J'ai bien tenté de les mettre "en dur" via l'inspecteur d'objet mais cela ne fonctionne pas pour autant.
Voila, si vous avez une idée.
Merci d'avance.
Partager