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