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]: Scroll barre verticale et Enregistrement en cours.


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Par défaut [DBGrid]: Scroll barre verticale et Enregistrement en cours.
    Bonjours,
    Est il possible de modifier la position de la barre de défilement verticale du composant DBGrid sans changer l'enregistrement en cours ?
    Si Oui Comment ?

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 093
    Par défaut
    La ScrollBar du TDBGrid est peu efficace, cela dépend aussi du composant DB sous-jacent

    Un Message WM_VSCROLL va provoquer le déplacement de la barre mais cela aura aussi un impact sur l'enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ABookmark := DataSet.Bookmark;
     
    //DBGrid.Perform(WM_VSCROLL, SB_THUMBPOSITION, ...); 
    SetScrollPos(DBGrid.Handle, SB_VERT, ..., false);
     
    DataSet.Bookmark := ABookmark
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre chevronné

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Par défaut
    Cette approche sera utile si on veut décaler la barre de défilement par programmation. mais comment procéder quand l’utilisateur change la position de la barre en cliquant dessus ?

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 093
    Par défaut
    ???
    Tu veux interdire l'utilisation de la ScrollBar ???

    Masquer l'ascenseur vertical/Horizontal dans un DBGrid ?
    Cacher le(s) ScrollBar(s) via ShowScrollBar qui se montre assez récalcitrant !
    Voir Faire disparaitre le scrollbar de plusieurs dbgrid
    Voir aussi desactiver l'acenseurs horizontal d'un DBgrid, si l'on joue avec Open\Close\Refresh il faut forcer le ShowScrollBar et même parfois, elle revenait toute seule, je n'ai jamais trop compris pourquoi, un Timer me corrigeait cela, je pouvais ainsi gérer ma propre ScrollBar couplé à un système de pagination

    Tu peux aussi t'amuser avec la WndProc !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  5. #5
    Membre chevronné

    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2010
    Messages
    297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2010
    Messages : 297
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    ???
    Tu veux interdire l'utilisation de la ScrollBar ???
    Je suis désolé car apparemment, j'ai mal exprimé le problème.
    Je voulais tout simplement modifier la position de la barre de défilement verticale à l'aide du curseur de la souris, sans que cela ne modifie l'enregistrement en cours (le comportement par défaut et que l'enregistrement en cours change en déplaçant la barre verticale et c'est ce que je veux éviter).

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 093
    Par défaut
    Citation Envoyé par adelneo Voir le message
    Je suis désolé car apparemment, j'ai mal exprimé le problème.
    Et ce n'est pas mieux pour ce qui suit !

    Citation Envoyé par adelneo Voir le message
    Je voulais tout simplement modifier la position de la barre de défilement verticale à l'aide du curseur de la souris, sans que cela ne modifie l'enregistrement en cours (le comportement par défaut et que l'enregistrement en cours change en déplaçant la barre verticale et c'est ce que je veux éviter).
    Tu veux que la barre bouge sans que cela n'a d'effet, ce n'est pas logique !
    Au final, la barre ne sert plus à rien, autant qu'elle ne soit pas visible !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. Empecher Lecture d'Enregistrement en cours de Modification
    Par toony dans le forum Administration
    Réponses: 4
    Dernier message: 09/12/2009, 11h18
  2. Réponses: 7
    Dernier message: 12/01/2005, 11h30
  3. Réponses: 2
    Dernier message: 10/10/2004, 23h12
  4. Réponses: 7
    Dernier message: 06/10/2004, 22h13
  5. [DBGrid]scroll dans deux grilles
    Par dleu dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/09/2004, 10h51

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