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 ...
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 ...
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.
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
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,
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
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
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
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
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
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
Si tu cliques sur l'en tete LigneEnCours aura la valeur 0
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;
Mes tutoriels
Avant de poster :
- F1
- FAQ
- Tutoriels
- Guide du développeur Delphi devant un problème
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager