bonjour,
je souhaiterais mettre le focus sur une certaine cellule de ma stringgrid mais deja je ne sais meme pas si c'est possible, et si oui comment?
merci de vos reponses
bonjour,
je souhaiterais mettre le focus sur une certaine cellule de ma stringgrid mais deja je ne sais meme pas si c'est possible, et si oui comment?
merci de vos reponses
Bonjour,
Une piste...De mémoire, il existe la propriété Col et Row qui définissent la ligne et la colonne de la cellule sélectionnée mais je n'ai pas tester
Par contre il ne faut pas oublier de mettre le focus sur ta stringgrid avec un SetFocus
En espérant que ça marche![]()
Imaginons que tu veuilles sélectionner la plage (0,0)..(9,9) :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TGridRect * MaSelection = new TGridRect; MaSelection->Left = Le coin gauche de ta sélection; MaSelection->Right = Le coin droit de ta sélection; MaSelection->Top = Le haut de ta sélection; MaSelection->Bottom = le bas de ta sélection; delete MaSelection;
Si tu veux mettre le focus sur une seule cellule, tu crée un rectangle qui a le meme coin gauche et droit, etc..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TGridRect * MaSelection = new TGridRect; MaSelection->Left = 0; MaSelection->Right = 9; MaSelection->Top = 0; MaSelection->Bottom = 9; delete MaSelection;
Focus sur la cellule [2;4]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TGridRect * MaSelection = new TGridRect; MaSelection->Left = 2; MaSelection->Right = 2; MaSelection->Top = 4; MaSelection->Bottom = 4; delete MaSelection;
merci pour vos reponses
Tenguryu, je ne sais pas ou mettre le code
ni comment le lien est fait avec ma stringgrid.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 TGridRect * MaSelection = new TGridRect; MaSelection->Left = 2; MaSelection->Right = 2; MaSelection->Top = 4; MaSelection->Bottom = 4; delete MaSelection;
Peux-tu m'expliquer comment ca marche?
Oups...j'ai oublié ^^
Pour le code,ben..tu le met juste avant de changer ta sélection.
Code : Sélectionner tout - Visualiser dans une fenêtre à part StringGrid1->Selection = MaSelection;
(mais met le delete après le bout de code juste au dessus)
c vrai que ma question etait mal posée, je voulais dire est ce qu il faut mettre ce code ds 1 evenement particulier.
Merci de ton aide, ca marche, j'ai bien la cellule voulue selectionner mais voila:
En faisant cela je croyais que mes scollbars bougeraient de maniere a ce que la cellule selectionnée soit dans la partie visible de la grid, et ben non.
du coup il reste encore un petit soucis, comment dire aux curseurs des scrollbars de se mettre a gauche pour l un et en haut pour l autre?
Envoyé par Tenguryu
Ricky ! ....du manger pour tes chats !![]()
Certes, dans ce cas, pourquoi veux tu sélectionner une cellule (utilisation de Row et Col) ou une plage de cellule (utilsation de selection)?
En fait que souhaites tu faire:
déterminer quelle est la cellule sélectionnée (ou la plage)?
ou bien forcer la sélection d'une cellule (ou d'une plage?)
dans quelle situation veux tu forcer cette sélection?
P.S.: Pauvres chats...............
Ce que je veux faire c'est qu'a la fin du traitement la cellule selectionnée soit celle de coord 0,1 (chat...euh, ça ça marche avec le code de tenguryu)
mais je voudrais aussi que les la partie visible de la striggrid aie comme coin haut gauche la cellule 0,1
Pour faire ça faut il faire un focus sur la cellule 0,1 ou dire aux scrollbars de la stringgrid de revenir a leur position initiale? et comment?
Tu as deux opérations à faire:
Voili voilou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 //Sélection de la cellule en question StringGrid1->Col=0; StringGrid1->Row=1; //Focus sur sur la cellule si les scrollbar ne sont pas bien calées, elles le seront //après cette opération. //Attention, fais quelques essais, en particuliers si tu as des colonnes ou des //lignes figées: il ne faut pas mettre le n° d'une colonne ou d'une ligne figée //dans ces paramètres StringGrid1->LeftCol=0; StringGrid1->TopRow=1;
Bon courage
Bonjour,
Pour le déplacement des scroll-bars, il y a aussi moyen d'utiliser PostMessage(...) avec les paramètres appropriés.
Cela donnerais qqchose comme:
@ +
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 PostMessage(TaStringGrid->Handle,WM_VSCROLL, SB_TOP, NULL); PostMessage(TaStringGrid->Handle,WM_HSCROLL, SB_PAGELEFT, NULL);![]()
Désolé,
le post étant passé sur une page 2 ou 3
et ayant trouvé la réponse au pb entre temps...
... j'avais oublié l'existence du post et donc de le mettre 'Résolu'
Pour info, j'avais fait comme l'indique mattetfamilly:
Merci à tous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 StringGrid1->Col=0; StringGrid1->Row=1;
Partager