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 :

DBGrid scrollbar horizontale décalée + clic


Sujet :

Bases de données Delphi

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut DBGrid scrollbar horizontale décalée + clic
    Voilà mon problème :
    j'ai une TDBGrid avec une scrollbar horizontale (la largeur de la grille est donc supérieure à la largeur de la fenêtre).

    Je décale la scrollbar vers la droite pour voir la fin de mes colonnes.

    Mais si je clique sur une cellule, toute la grille se redécale à gauche et je ne vois plus mes dernières colonnes mais de nouveau les premières.

    J'ai tenté d'envoyer le message de scroll vers la droite, mais sans résultat...

    Quelqu'un aurait-il une idée ??

  2. #2
    Membre actif

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Points : 210
    Points
    210
    Par défaut
    Déjà, essayer d'adapter la taille de la DBGrid au format des données, pour éviter la ScrollBar
    @+
    Fabrice

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Février 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 2
    Points : 1
    Points
    1
    Par défaut trop grand !!!
    En fait, si cette solution était possible je l'aurais implémentée.
    Mais une "ligne" de données est beaucoup trop longue pour rentrer sur un écran (surtout pour la config écran chez le client)

    donc ce n'est pas LA solution..

    Mais bon merci quand même, apparemment ma question a l'air d'en arrêter plus d'un !

  4. #4
    Membre habitué Avatar de Guile
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    130
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations forums :
    Inscription : Avril 2002
    Messages : 130
    Points : 144
    Points
    144
    Par défaut
    Salut,
    Il me semble que ce comportement est du à l'option RowSelect de la grille. quand elle est à true, la grille considère que tu cliques sur une ligne et non une cellule et te renvoie toujours au début.
    Donc si cette option est sélectionnée, décoche là et si tu as vraiment besoin d'une ligne sélectionnée, le changement de couleur des cellules doit etre faisable dans le OnDrawDataCell.
    Il existe 10 sortes de personnes, ceux qui comprennent le binaire et les autres...

  5. #5
    Membre expert
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Points : 3 575
    Points
    3 575
    Par défaut
    +1 Guile
    j'aurais donné strictement la même solution

    et je confirme pour RowSelect=True, ca revient au début dès lors que l'on clique sur une cellule d'une ligne différente.
    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 ;-)

  6. #6
    Membre actif

    Profil pro
    Personnel
    Inscrit en
    Septembre 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France, Meuse (Lorraine)

    Informations professionnelles :
    Activité : Personnel

    Informations forums :
    Inscription : Septembre 2003
    Messages : 142
    Points : 210
    Points
    210
    Par défaut
    Allons, allons, on ne jette pas l'éponge si facilement !
    Essaie voir cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     // déclare en variable globale:
     fSelect: TField;
     
    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
      DataCol: Integer; Column: TColumn; State: TGridDrawState);
     begin
      DBGrid1.SelectedField := fSelect;  // mémo de l'affichage
     end;
     
    procedure TForm1.DBGrid1ColEnter(Sender: TObject);
     begin
      fSelect := DBGrid1.SelectedField;  // restore l'affichage
     end;
    Si cela ne fonctionne pas chez toi, il faut adapter la taille de la plus grande colonne à l'affichage de la DBGrid, de toute façon, on ne peut jamais voir la colonne complète, si elle est > à l'affichage.
    @+
    Fabrice

Discussions similaires

  1. Réponses: 4
    Dernier message: 17/02/2011, 10h11
  2. Forcer une scrollbar horizontale à se déplacer
    Par MiJack dans le forum Composants VCL
    Réponses: 10
    Dernier message: 09/01/2008, 14h37
  3. [DBGrid] Tri d'un clic sur l'en-tête de colonne
    Par pifou25 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 05/09/2006, 17h03
  4. repeat x et scrollbar horizontale
    Par la.sophe dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 17/03/2006, 17h59
  5. Tester si la scrollbar horizontale est affichée.
    Par Etanne dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/09/2005, 14h01

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