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

Composants VCL Delphi Discussion :

DBGrid Désélection de tous les éléments


Sujet :

Composants VCL Delphi

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut DBGrid Désélection de tous les éléments
    Je voudrais savoir comment l'on fait pour désélectionner toutes les lignes d'une DBGrid ...

    Cela pourra paraître trivial, mais j'ai beau chercher, je ne trouve pas ... :s

    Ma DB grid est lié à un Query qui fait un simple sélect sur une table.

    Merci d'avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut
    Pour l'instant, je joue avec la propriété ShowSelection de la grille...

  3. #3
    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
    essai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      DBGrid1.SelectedRows.Clear;

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut
    Cela ne marche maheureusement pas...

    J'aurais du préciser que j'utilise le DBGrid de TMS (AdvStringDBGrid)... où cette propriété n'existe pas (et ShowSelection n'existe pas dans un DBGrid classique...).

    Comme je n'avais pas vraiment besoin d'un composant aussi compliqué que le TMS et aussi pour essayer, j'ai fait le test avec un DBGrid classique et Grid.SelectedRows.Clear . ... Il se repositonne sur le premier élément de la grille... Donc il y a toujours un élément sélectionné.

  5. #5
    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
    pour TMS, tu n'as pas HideSelection ?

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 745
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 745
    Points : 25 671
    Points
    25 671
    Par défaut
    Tu ne devrais pas utiliser TAdvStringDBGrid, il me semble qu'elle est dépréciée, il faut la remplacer par TAdvDBGrid qui est plus proche de la TDBGrid (consomme nettement moins de mémoire) mais elle s'utilise différement (surtout au niveau des colonnes)

    Attention à ne pas confondre la Sélection et l'Affichage de l'enregistrement en Cours
    Sur le DBGrid, on voit la différence sur la colonne d'indication, si triangle simple, c'est l'enregistrement en cours, si point ou triangle contenant un point, c'est de la sélection

    Voir aussi l'option dgAlwaysShowSelection
    Sinon HideSelection cache la sélection effectivement, j'ai utilisé une Grille TAdvStringGrid pour faciliter la coloration, c'est très pratique

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2002
    Messages : 146
    Points : 76
    Points
    76
    Par défaut
    J'utilise bien une TAdvDBGrid. Désolé pour l'erreur...

    Le but de la manoeuvre etait de pouvoir déselectionner tous les éléments de la grille pour permettre à l'utilisateur de mettre 'non déterminée' une valeur dans une liste. Donc rien de sélectionné.

    Avec un collègue, nous sommes parvenus à utiliser le DBGrid avec le même but, en utilisant un Locate sur le DataSource

    Voici comment se positionner sur l'enregistrement choisi (à l'aide des TAdvDBGrid) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if DBGrdLocation.DataSource.DataSet.Locate('ID', SelectedLocationID, [loCaseInsensitive, loPartialKey]) then Begin
                DBGrdLocation.SelectRows(DBGrdLocation.Row, 1);
                DBGrdLocation.ShowSelection := True;
            End else DBGrdLocation.ShowSelection := False;
    le locate marche aussi avec une DBGrid...

    Merci pour votre aide

  8. #8
    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 lejert Voir le message
    le locate marche aussi avec une DBGrid...

    Merci pour votre aide
    Le locate ne fonctionne pas aussi avec la DbGrid, mais avec la source de données liée à cette DbGrid

    Quand tu fais DBGrdLocation.DataSource.DataSet.Locate, tu peux aussi le faire sur le composant base de données lié, ca réagira de la même manière

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

Discussions similaires

  1. [XSL] afficher tous les éléments fils d'un noeud
    Par alexandra dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 07/09/2006, 09h33
  2. [JDOM] Recpérer une liste de tous les éléments d'un fichier XML
    Par adilo dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 30/08/2006, 11h15
  3. Parcourir tous les éléments d'un record
    Par chourmo dans le forum Delphi
    Réponses: 2
    Dernier message: 28/07/2006, 08h52
  4. [Listbox]Sélectionner tous les éléments
    Par Hayato dans le forum 4D
    Réponses: 4
    Dernier message: 13/06/2006, 10h18
  5. Réponses: 15
    Dernier message: 21/06/2004, 17h52

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