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 :

Problème d'affichage d'un DBGrid


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 219
    Par défaut Problème d'affichage d'un DBGrid
    Bonjour à tous,
    J'ai appliqué la solution de SergioMaster (voir posts précédents) qui fonctionne au petit poil. Mon nouveau (et petit) problème est le suivant : mon DBGrid affiche les 20 derniers enregistrements. Quand je double-clique sur la colonne me servant à marquer des enregistrements à imprimer situés au-dessus, le DBGrid revient systématiquement en bas, c-a-d au dernier enregistrement, malgré la désactivation de toute instruction ZQuery1.Last ou ZQuery1.First. Je dois à chaque fois remonter au niveau de l'enregistrement suivant à marquer et c'est assez irritant.
    Y-a-t-il une instruction pour que le DBGrid reste figé au niveau de la zone de clic ? J'espère ne pas avoir été brumeux.
    Merci. Cordialement

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 938
    Billets dans le blog
    6
    Par défaut
    Bonjour,
    N'est-ce pas le rôle des Bookmarks de mémoriser et revenir commodément à une position ?
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 658
    Billets dans le blog
    65
    Par défaut
    Bonjour
    Citation Envoyé par f5jcg_Lulu Voir le message
    Quand je double-clique sur la colonne me servant à marquer des enregistrements à imprimer situés au-dessus, le DBGrid revient systématiquement en bas, c-a-d au dernier enregistrement ... J'espère ne pas avoir été brumeux.
    Brumeux, si un peu (ou alors c'est moi) je ne comprends pas ce qui se passe, peut-être qu'en nous fournissant le code de ce double-clique ?
    Si c'est la solution 1 qui avait été utilisée (ajout d'une colonne booléenne) l'évènement devrait contenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ZQuery1.Edit;
    ZQuery1.FieldByName('EDITER').asBoolean:=True; // asBoolean hum, il existe celui là ? 
    ZQuery1.Post;
    Sans bien sûr aucun Refresh (ou alors un RefreshRecord p.s. je ne me souviens plus si ZEOSDBO connait)

    Après révision de ZUpdateSQL (puisqu'il y a ZQuery) je m'aperçois que j'ai pris de "mauvaises" habitudes avec Firedac qui permet ce genre de Refresh, RefreshRecord

    donc pour en revenir à l'évènement, si un Refresh est nécessaire, comme l'écrit tourlourou, les bookmarks sont là pour ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var aBookmark : TBookmark;
    begin
     
    ABookMark:=ZQuery1.GetBookMark;
    ZQuery1.Edit;
    ZQuery1.FieldByName('EDITER').asBoolean:=True; // asBoolean hum, il existe celui là ? 
    ZQuery1.Post;
    ZQuery1.DisableControls;  // pour éviter le flickering
    ZQuery1.Refresh;
    ZQuery1.GotoBookmark(ABookmark); 
    Zquery1.EnableControls;

  4. #4
    Membre confirmé
    Homme Profil pro
    Retraité
    Inscrit en
    Janvier 2019
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Janvier 2019
    Messages : 219
    Par défaut
    Encore une fois, bravo à tous les 2, ça fonctionne. Effectivement les BookMark existent, encore fallait-il connaître et comprendre cette "chose", voilà qui est fait grâce à vous.
    Merci à vous. Cordialement et si ça se trouve, A+ !!!!

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/10/2014, 13h19
  2. Problème affichage d'un DBGrid
    Par Freud44 dans le forum C++Builder
    Réponses: 4
    Dernier message: 21/03/2008, 12h15
  3. Problème d'affichage de la scrollbar dans DBgrid
    Par Brain3D dans le forum Bases de données
    Réponses: 1
    Dernier message: 21/01/2008, 15h18
  4. Problème d'affichage champ mediumtext dans DBGrid
    Par Ice-tea dans le forum Bases de données
    Réponses: 6
    Dernier message: 18/09/2007, 17h14
  5. Problème d'affichage dans la DBGrid
    Par Xjoker dans le forum C++Builder
    Réponses: 7
    Dernier message: 23/03/2006, 09h17

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