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

Bases de données Delphi Discussion :

Sélection par programme d'un item d'un TDbLookupListBox


Sujet :

Bases de données Delphi

  1. #1
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut Sélection par programme d'un item d'un TDbLookupListBox
    Bonjour

    Le TDbLookupListBox reflète instantanément les déplacements dans le DataSource de sa ListSource.
    Mais la sélection de l'enregistrement exact n'est pas concrétisé par une sélection.
    Existe-t-il une instruction qui permettrait cette sélection pour que l'utilisateur puisse la visualiser dans la TDbLookupListBox ?

    Merci d'avance.

  2. #2
    Membre habitué Avatar de giltonic
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 109
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par defluc
    Bonjour

    Le TDbLookupListBox reflète instantanément les déplacements dans le DataSource de sa ListSource.
    Mais la sélection de l'enregistrement exact n'est pas concrétisé par une sélection.
    Existe-t-il une instruction qui permettrait cette sélection pour que l'utilisateur puisse la visualiser dans la TDbLookupListBox ?

    Merci d'avance.
    J'ai pas l'aide avec moi, j'ai pas delphi sur ce poste mais regarde F1 sur ton TDBlookupListBox, regarde aussi les propriétes qui concernent la "selection". parce que si mes souvenir sont bon un DBLookupListBox peut etre Multiselect, Non ?
    Musique : Oasis | Photos : Panoramio

  3. #3
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    J'ai envie de dire
    Il vaut mieux se taire que de parler pour ne rien dire.
    Le but du Forum est de faire avancer les sujets et d'enrichir les compétences, non de faire de l'audimat.

  4. #4
    Membre habitué Avatar de giltonic
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 109
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par defluc
    J'ai envie de dire


    Le but du Forum est de faire avancer les sujets et d'enrichir les compétences, non de faire de l'audimat.

    La reponse a la question ci dessus.

    Il suffit d'affecté le champs de Ton DBLookupListBox

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DBLookupListBox1.DataSource.DataSet.FieldByName(DBLookupListBox1.DataField).Value:=
       DBLookupListBox1.ListSource.DataSet.FieldByName(DBLookupListBox1.KeyField).Value
    Musique : Oasis | Photos : Panoramio

  5. #5
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Ca au moins c'est constructif.
    Malheureusement, cela me donne une erreur EAccessViolation avec le message violation d'accès à l'adresse 0058DF49.

    Si quelqu'un a une autre solution..., je lui en serais reconnaissant

  6. #6
    Membre habitué Avatar de giltonic
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    109
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 109
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par defluc
    Ca au moins c'est constructif.
    Malheureusement, cela me donne une erreur EAccessViolation avec le message violation d'accès à l'adresse 0058DF49.

    Si quelqu'un a une autre solution..., je lui en serais reconnaissant
    1) DBLookupListBox1.DataSource.DataSet doit etre En Insert Ou Edit

    Et c'est sur l'evenement "After Scroll" de la requete pointant sur "DBLookupListBox1.ListSource.DataSet" qu'il faut mettre mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    DBLookupListBox1.DataSource.DataSet.FieldByName(DBLookupListBox1.DataField).Value:=
       DBLookupListBox1.ListSource.DataSet.FieldByName(DBLookupListBox1.KeyField).Value
    Musique : Oasis | Photos : Panoramio

  7. #7
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    J'ai mis la table en mode Edit mais l'erreur reste la même.

  8. #8
    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
    Si tu as une violation d'accès c'est que tu fais référence à un objet non instancié.
    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
     
    If Assigned(DBLookupListBox1) and 
       Assigned(DBLookupListBox1.DataSource) and 
         Assigned(DBLookupListBox1.DataSource.DataSet) and 
    Assigned(DBLookupListBox1.DataSource.DataSet.FieldByName(DBLookupListBox1.DataField) and 
    Assigned(DBLookupListBox1.ListSource.DataSet.FieldByName(DBLookupListBox1.KeyField)
     then
    begin
    DBLookupListBox1.DataSource.DataSet.FieldByName(DBLookupListBox1.DataField).Value:=
       DBLookupListBox1.ListSource.DataSet.FieldByName(DBLookupListBox1.KeyField).Value;
    end
    else
    begin
      showmessage ('Oh zut alors ! je fais référence à un  objet non instancié !'#13#10+ 'vite j''utilise mon débogueur et je vais corriger !')
    end;
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  9. #9
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    Je ne suis pas encore au bout de mes peines parce que je n'ai pas que ça à faire.
    Et puis, qu'est-ce qu'on peut perdre comme temps avec des bétises.

    Yurk cela rendra service aux autres si tu pouvais éditer ton message et enlever 1 "s" sur 3 à test "Asssigned".

    D'autre part, en plus de cette petite faute pardonnable d'orthographe, ta source donne une erreur "opérateur non applicable à ce type d'opérande après le then.

  10. #10
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Je comprend pas bien ton problème. Tu veux que quand on se positionne sur un enregistrement de ta table, il y ai une sélection dans le DbLookupListBox ?

    Pour ma part, si mon DbLookUpListBox est bien configuré, si l'enregistrement que je sélectionne à les bonnes valeurs, il y a une sélection dans le composant. (J'utilise D2005)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  11. #11
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    A chaque next sur le composant table, les éléments du TDbLookupListBox remontent un à un mais sans mettre en surbrillance celui qui est actif.

    Delphi 4

  12. #12
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par defluc
    A chaque next sur le composant table, les éléments du TDbLookupListBox remontent un à un mais sans mettre en surbrillance celui qui est actif.

    Delphi 4
    Bizarre, ca doit venir de delphi 4 ou alors tu n'as pas de correspondance entre le champ clef de ta table et ce que tu dois afficher.

    Sinon (méthode bourrine) essais à chaque déplacement de donner le focus au DbLookupListBox puis de remettre le focus sur le boutton qui à fait le next.
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  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 defluc
    Yurk cela rendra service aux autres si tu pouvais éditer ton message et enlever 1 "s" sur 3 à test "Asssigned".

    D'autre part, en plus de cette petite faute pardonnable d'orthographe, ta source donne une erreur "opérateur non applicable à ce type d'opérande après le then.
    Voilà, voilà j'ai corrigé. j'ai aussi enlevé une paranthèse.

    Alors toujours pas de solution ?
    Il me semble pourtant que cela devrait fonctionner.

    a+
    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
    Citation Envoyé par defluc
    A chaque next sur le composant table, les éléments du TDbLookupListBox remontent un à un mais sans mettre en surbrillance celui qui est actif.

    Delphi 4
    Je m'étais contenter de répondre aux motivations du message d'erreur.

    Je pesne que oui si c'est un problème de visualisation tu devrais lui donner le focus pour qu'il se remette à jour enfin pour voir

    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
    24
    25
    26
    27
    28
     
    var
      ActCtrl     : TWincontrol; 
      Ctrl_OnExit   : TNotifyEvent;
      Ctrl_OnEnter: TNotifyEvent;
      F_OnExit   : TNotifyEvent;
      F_OnEnter: TNotifyEvent;
    begin
      ActCtrl := Screen.activeform.activecontrol; 
      Ctrl_OnExit := ActCtrl.OnExit;
      Ctrl_OnEnter := ActCtrl.OnEnter;
      F_OnExit := DBLookupListBox1.OnExit;
      F_OnEnter := DBLookupListBox1.OnEnter;
     
      ActCtrl.OnExit := nil;
      ActCtrl.OnEnter := nil;
      DBLookupListBox1.OnExit := nil;
      DBLookupListBox1.OnEnter := nil;
      try
        DBLookupListBox1.SetFocus; 
        ActCtrl.SetFocus; 
      finally
        ActCtrl.OnExit := Ctrl_OnExit;
         ActCtrl.OnEnter := Ctrl_OnEnter;
        DBLookupListBox1.OnExit := f_OnExit;
        DBLookupListBox1.OnEnter := F_OnEnter;
      end;
    end;

    a+
    Dans le vocabulaire des couturiers seulement, patron est synonyme de modèle.
    Aymond d'Alost

  15. #15
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Points : 1 199
    Points
    1 199
    Par défaut
    C'est grâce à toi Yurk, et non sans peine, que je viens d'avoir la solution sur un TQuery, après avoir fait un à un les tests par assigned.
    Sur un Ttable, j'ai abandonné.
    Mais tu es celui qui m'a apporté la solution.
    Merci donc à toi.

    Un delphiste alpiniste

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

Discussions similaires

  1. [WM18] Sélection dans zone répétée remplie par programmation
    Par guen dans le forum Windev Mobile
    Réponses: 1
    Dernier message: 26/06/2013, 01h18
  2. [Flex4] Sélectionner un item d'un Tree par programmation
    Par thenaoh dans le forum Flex
    Réponses: 2
    Dernier message: 15/02/2013, 14h06
  3. Réponses: 5
    Dernier message: 08/01/2013, 17h03
  4. Sélection du programme de mail par défaut dans combobox
    Par clickandgo dans le forum VBA Access
    Réponses: 2
    Dernier message: 01/06/2012, 18h26
  5. Selection par programme d'un Item Combobox
    Par Tleconte dans le forum Langage
    Réponses: 4
    Dernier message: 26/07/2009, 17h10

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