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

Delphi Discussion :

Cellule sélectionnée dans un DBGrid


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut Cellule sélectionnée dans un DBGrid
    Re-bonjour à tous,

    J'aimerais savoir si il existe une fonction qui permet de savoir si une ligne d'un DBGrid a été sélectionnée par l'utilisateur (si elle est surlignée en bleue).

    Parce que je dois supprimer la ligne sélectionnée par un clic sur un bouton, et que actuellement si je sélectionne aucunes lignes, mon programme efface la première ligne.

    Merci.

  2. #2
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Le DBGRid ne contient pas les données, elle les affiches justes
    Ta ligne courante affichée, est la ligne sur le curseur courant de ta table.

    Donc un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonDBGrid.Dataset.Delete
    suffit.
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

  3. #3
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Merci,

    Mais je n'est pas un problème pour supprimer une ligne de la base ( jusqu'à maintenant je récupérais ma clé primaire dans une variable, et après j'utilisais delete ) Donc ton astuce me servira par la suite.

    En fait, ce qui ne va pas c'est que dès que je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonDBGrid.Dataset.Delete
    Cela m'efface la première ligne de ma table, alors que je voudrais supprimer une ligne que si elle est sélectionner.

    @+.

  4. #4
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut,

    Normalement le code donné par TicTacToe doit fonctionner correctement !
    Si le DBGrid ne contient pas les données, les déplacements dans le DataSet reste néanmoins synchroniser avec le DBGrid.

    Donc si l'evènement OnClick du bouton est comme ceci (ou approchant) tu devrais supprimer l'enregistrement sélectionné dans le DBGrid.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      DBGrid1.DataSource.DataSet.Delete;
    end;
    @+

  5. #5
    Membre émérite Avatar de PadawanDuDelphi
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2006
    Messages
    678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2006
    Messages : 678
    Par défaut
    Bonjour,

    Effectivement ce code fonctionne très bien...
    Mais en fait le problème c'est que j'aimerai que l'utilisateur clic d'abord sur une ligne du DBGrid, puis sur supprimer avant de l'effacer. Si l'utilisateur, par exemple, clic sur un édit entre les deux opérations, je dois pouvoir ne pas tenir compte de la suppression.

    Actuellement, lorsque par exemple j'ouvre ma fiche, le dataset est positionner sur la première ligne. Et donc c'est cette ligne qui va disparaître...

    Donc, en gros, j'aimerais pouvoir afficher ma table sans avoir de ligne active avant d'aoir cliquer sur ma grid.

    @+.

  6. #6
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Citation Envoyé par PadawanDuDelphi
    Bonjour,
    Donc, en gros, j'aimerais pouvoir afficher ma table sans avoir de ligne active avant d'aoir cliquer sur ma grid.
    Il y aura toujours une ligne sélectionnée dans ton DBGrid (à moins que ta table soit vide ).

    @+

  7. #7
    Membre éprouvé
    Inscrit en
    Avril 2005
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 123
    Par défaut
    Citation Envoyé par PadawanDuDelphi
    Bonjour,

    Effectivement ce code fonctionne très bien...
    Mais en fait le problème c'est que j'aimerai que l'utilisateur clic d'abord sur une ligne du DBGrid, puis sur supprimer avant de l'effacer. Si l'utilisateur, par exemple, clic sur un édit entre les deux opérations, je dois pouvoir ne pas tenir compte de la suppression.

    Actuellement, lorsque par exemple j'ouvre ma fiche, le dataset est positionner sur la première ligne. Et donc c'est cette ligne qui va disparaître...

    Donc, en gros, j'aimerais pouvoir afficher ma table sans avoir de ligne active avant d'aoir cliquer sur ma grid.

    @+.

    Je ne sais pas si cela est possible, mais le Cursor d'une dataset se positionne TOUJOURS sur une ligne, dès qu'elle est chargée, je crois.

    Je pense qu'il te faut une astuce. Insérer un messageBox pour valider une éventuelle suppression par exemple. Comme ça tu protège les suppressions maladroites.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 22/10/2013, 16h57
  2. coordonnées d'une cellule sélectionnée dans un grid
    Par mon_proj dans le forum wxPython
    Réponses: 2
    Dernier message: 08/04/2008, 11h26
  3. Réponses: 5
    Dernier message: 22/03/2007, 12h52
  4. "Tout sélectionner" dans un DBGrid
    Par Alyx² dans le forum Bases de données
    Réponses: 1
    Dernier message: 02/08/2006, 22h58
  5. ligne sélectionnée dans une dbGrid
    Par RBIK dans le forum Bases de données
    Réponses: 3
    Dernier message: 06/07/2004, 17h13

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