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 :

Activer les colonnes d'une grille


Sujet :

Composants VCL Delphi

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Activer les colonnes d'une grille
    Bonjour,
    J'aimerais activer le click sur les libellés des colonnes de ma grille enfin de pouvoir trier la grille selon la colonne ...

    Ma grille est de type TAdvStringGrid et est alimenté par un dataset ...

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Tu peux utiliser l'évenement OnCellEnter héritée de la StringGrid. Tu test si ARow est égal à 0 pour savoir si c'est l'en tête. Ensuite tu teste ACol pour connaitre la colonne et ainsi sa place dans le DataSet. Et tu n'a plus qu'à tier le DataSet. Il doit y avoir une méthode fournie.

  3. #3
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Je te remercie pour ta réponse,

    Mais mon problème dans un premier temps c'est d'activer les libellés de la grille enfin que quand on clique sur une libellé il se passe quelques choses ...

    Actuellement ce n'est pas le cas (les libellés ne sont pas cliquable).

    Encore Merci,

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Dans ce cas, il suffit de ne pas mettre de FixedCol.
    Tu change la couleur de la ligne 0 pour faire l'effet d'un en-tête.
    Il y a des exemple sur le forum

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Je te remercie encore, mais mon problème persiste encore,

    En fait mon FixedRows est à 1 et je n'arrive pas à le mettre à 0 (il change automatiquement pour reprendre la valeur de 1), tu penses que ca pouvais venir de quoi?

    Si qqn d'autre peut m'aider il est le bienvenu ...

    Maure

  6. #6
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Je ne connais pas la TAdvStringGrid mais la TStringGrid te permet de mettre FixedRow à 0, tu dois avoir une propriété qui empeche de le passer à 0.

    Sinon tu peux toujours essayer de le passer à 0 par le code. Avec un peu de chance tu auras un message d'erreur qui te donneras la solution

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Je n'y pensais plus mais tu n'a même pas besoin d'enlever le fixedRow
    il te suffit de recupérer la ligne à partir des coordonnée sous le pointeur de la souris

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    procedure TFtarifHR.GrilleMouseDown(Sender: TObject;
      Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    var Coord : TGridCoord;
         LigneEnCours ; integer;
    begin
     
      { Récupère les coordonnées de la cellule sous le curseur de la souris }
      Coord := ThGrid(Sender).MouseCoord(X,Y);
      { Extrait la ligne à partir de ces coordonnées }
      LigneEnCours := Coord.Y;
    end;
    Si tu cliques sur l'en tete LigneEnCours aura la valeur 0

Discussions similaires

  1. tooltip sur les colonnes d'une grille
    Par HaveANiceDay dans le forum Ext JS / Sencha
    Réponses: 1
    Dernier message: 14/09/2010, 16h24
  2. Champs d'une requête et Colonne d'une grille rattaché
    Par Andry dans le forum Bases de données
    Réponses: 4
    Dernier message: 11/10/2005, 09h39
  3. [VBA] Trier les colonnes d'une listview
    Par alncool dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/09/2005, 14h12
  4. Toutes les colonnes d'une BDD
    Par mohamed dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/09/2004, 14h12
  5. Réponses: 1
    Dernier message: 29/08/2004, 19h45

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