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
Proverbe nain : On boira du lait le jour où les vaches mangeront du houblon !
le site de ma douce et tendre
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;
Du bon sens tu auras
Du bon sens tu auras encore
Du bon sens tu auras toujours
http://emilien.bresson.free.fr
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 )
Du bon sens tu auras
Du bon sens tu auras encore
Du bon sens tu auras toujours
http://emilien.bresson.free.fr
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?
Je donne ma langue au chat :p
Du bon sens tu auras
Du bon sens tu auras encore
Du bon sens tu auras toujours
http://emilien.bresson.free.fr
Envoyé par Tenguryu
Ricky ! ....du manger pour tes chats !
Current StatusAux persévérants aucune route n'est interdite.
Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
Faîtes quelque chose de bien avec vos petits sous: Enfants du MekongAvec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
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...............
on aura tout vu...
Mais où est-ce???...
------------------------------------------------------
n'oublies pas les balises [code ][/code ]
et le Tag
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
on aura tout vu...
Mais où est-ce???...
------------------------------------------------------
n'oublies pas les balises [code ][/code ]
et le Tag
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);
Current StatusAux persévérants aucune route n'est interdite.
Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
Faîtes quelque chose de bien avec vos petits sous: Enfants du MekongAvec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
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;
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