Bonjour.
Je connais le principe d'utilisation des DBLookUpListBox mais pas des DBListBox ou ListBox.
Vous n'auriez pas un lien ou deux d'une doc ou d'un exemple.
Merci.
Bonjour.
Je connais le principe d'utilisation des DBLookUpListBox mais pas des DBListBox ou ListBox.
Vous n'auriez pas un lien ou deux d'une doc ou d'un exemple.
Merci.
D'après ce que j'ai vu,
il faut relier la DBListBox a un Data Source qui
lui même est relié a un Querry.
Or même après avoir vérifié que mes composants soient connectés et actifs, je n'ai rien dans ma ListBox
Salut;
regarde si ton query est actif et si ton DBListBox est positionné sur un champ de ton DataSet.
Bonne chance.
Bonjour
Un TListBox donne un résultat pris dans une liste que l'on doit remplir
La propriété style indique la manière dont la liste box vas autoriser la saisie des valeurs (uniquement les valeurs de la liste/ n'importe quelle valeur etc.)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 MyListBox.Items.Clear; MyListBox.Items.Add('A'); MyListBox.Items.Add('B'); MyListBox.Items.Add('C');
Un TDBListBox est identique dans le fonctionnement mais vas mettre les information directement dans un champs d'une table ou d'une requête.
La différence entre un TDBListBox et un TDBLookUpListBox est que la Liste des valeurs (propriété items) est remplacé par une valeur prise dans une table ou une requête. Cette liste est donc constitué automatiquement.
Whhwow!
Ok !
Merci des réponses.
J'essaye tout ça.
Euu!
J'ai relu pendant quelques minutes ton explication mais j'ai beaucoup de mal à comprendre ton 2eme et 3eme point.
De plus j'ai essayé le code
Mais je ne comprend pas non plus à quoi il peut servir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 MyListBox.Items.Clear; MyListBox.Items.Add('A'); MyListBox.Items.Add('B');
Je vois bien qu'il s'affiche dans ma ListBox mais a quoi ça sert...
Ce n'est rien qu'une liste ! alors imaginons que tu as une donnée dont la valeur est "A" ou "B" ou "C" et que tu ne veux pas que ton utilisateur entre un caractère autre que ceux que tu as envisagé voilà une bonne méthode pour l'empêcher. Maintenant la même liste peut-être dans une fichier ou Base de données alors autant aller la chercher et l'exploiter sans pour autant la saisir ou donner la main à l'utilisateur, d'où l'utilisation d'un composant orienté donnée DBListBox. Compliquons encore les choses, alors imaginons que notre liste peut-être dynamique, à mon sens vaut mieux manipuler une table l'enregistrer et la rattacher à notre composant que travailler directement avec un composant ordinaire. N'est ce pas utile tout ça.
j'espère avoir apporté quelques éclaircissements.
Bonne chance.
OK !
Merci !
D'où l'utilité de la DBListBox lorsque l'on veut afficher les données d'une table.
Mais alors j'en reviens à ma 1ere question.
Pourquoi est ce que lorsque j'ai relié ma ListBox a un data set et lui même a un querry ,et également renseigné le champ datafield, il ne se passe rien.
Re;
le temps que je mette un petit exemple et te donner suite
Très juste ta remarque, j'ai fais la même chose que toi mais la liste reste vide. Pour contourner le problème j'ai dû faire ça:
mais je me demande quel est l'utilité de Items en présence d'un DataField qui est censé récupéré les données sans aucune ligne de code !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 procedure TForm1.FormCreate(Sender: TObject); begin Table1.Open; while not(Table1.Eof) do begin DBListBox1.Items.Add(Table1.FieldByName('FirstName').AsString); Table1.Next; end; end;
affaire à suivre, peut-être que nos experts Delphi auront le temps pour nous donner des explications.
Bonjour,
Je reprend l'explication
Voila un shema des liens avec un TDBListe box
DataSource a modifier --lien-- DataSet des valeurs a modifier --lien--TDBListBox --lien-- Liste
Le dataset et le datasource corresponde a la valeur à modifier et la liste au valeur possibles.
Par défaut la liste des valeurs possible est vide.
Cela explique la remarque de Just-Soft disant qu'il à du remplire la liste avec des valeurs issue d'une table.
Un DBLookUpListBox n'a pas de liste mais un autre dataset
DataSource a modifier --lien-- DataSet des valeurs a modifier --lien--TDBListBox --lien-- Dataset des valeurs possibles --lien-- Datasource des valeurs possibles.
Pour en revenir aux problème de base.
Si vous mettez un simple TDBEdit relier au champ à modifier, pouvez vous modifier le champ ?
oui mais tel que le DBListBox est conçu on n'est pas à l'abri d'un mélange de données. je m'explique, si le DataFiled est relié à un champ 'Nom' et l'items est rempli de données type date ! ça donnerait quoi ça ?
A mon sens le Items devrait lui même correspondre au type de données du DataField pour qu'il n'y est pas de problème d'uniformité de données. mais comme Items n'est autre qu'un TString alors bonjour les dégâts !
Les items sont toujours du type string. Ce n'est pas négociable, sauf à être patron d'Embarcadero.
Si vous voulez un type variable, vous pouvez par contre dérivé un TBListBox pour créer une alternative a TDBListbox. A moins que d'autre ne l'ai déja réalisé et qu'un composant soit disponible sur internet.
Du coup, il faut dans chaque items mettre une valeur compatible en string avec la valeur à saisir.
Je n'arrive pas tout à fait à vous suivre dans vos dernière explications mais en tout cas, j'arrive a me servir correctement de la DBListBox.
Les 2 ou 3 exemples qu'il y a sur le site développez (Delphi/Source)
http://delphi.developpez.com/sources...pp_com_listbox
sont utiles aussi.
merci pour vos réponses.
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