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

C++Builder Discussion :

focus sur une cellule d une stringgrid


Sujet :

C++Builder

  1. #1
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut focus sur une cellule d une stringgrid
    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

  2. #2
    Membre régulier Avatar de Poilou
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 59
    Points : 70
    Points
    70
    Par défaut
    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

  3. #3
    Membre habitué

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    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;
    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 = 0;
    MaSelection->Right = 9;
    MaSelection->Top = 0;
    MaSelection->Bottom = 9;
    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..

    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

  4. #4
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    merci pour vos reponses
    Tenguryu, je ne sais pas ou mettre le code
    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;
    ni comment le lien est fait avec ma stringgrid.
    Peux-tu m'expliquer comment ca marche?

  5. #5
    Membre habitué

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    Oups...j'ai oublié ^^

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringGrid1->Selection = MaSelection;
    Pour le code,ben..tu le met juste avant de changer ta sélection.
    (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

  6. #6
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    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?

  7. #7
    Membre habitué

    Profil pro
    Cadre
    Inscrit en
    Mars 2006
    Messages
    132
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Cadre

    Informations forums :
    Inscription : Mars 2006
    Messages : 132
    Points : 168
    Points
    168
    Par défaut
    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

  8. #8
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    Citation Envoyé par Tenguryu
    Je donne ma langue au chat :p

    Ricky ! ....du manger pour tes chats !
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 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...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  9. #9
    Membre actif Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 201
    Points
    201
    Par défaut
    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

  10. #10
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    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?

  11. #11
    Membre actif Avatar de Mattetfamilly
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 182
    Points : 201
    Points
    201
    Par défaut
    Tu as deux opérations à faire:
    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;
    Voili voilou
    Bon courage
    on aura tout vu...
    Mais où est-ce???...
    ------------------------------------------------------
    n'oublies pas les balises [code ][/code ]
    et le Tag

  12. #12
    Membre expert
    Avatar de Sunchaser
    Homme Profil pro
    OPNI (Objet Programmant Non Identifié)
    Inscrit en
    Décembre 2004
    Messages
    2 059
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : OPNI (Objet Programmant Non Identifié)
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 059
    Points : 3 204
    Points
    3 204
    Par défaut
    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);
    @ +
    Aux persévérants aucune route n'est interdite.
    Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
    Current Status
    Avec 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...
    Faîtes quelque chose de bien avec vos petits sous: Enfants du Mekong

  13. #13
    Membre habitué
    Inscrit en
    Mai 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 188
    Points : 182
    Points
    182
    Par défaut
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    StringGrid1->Col=0;
    StringGrid1->Row=1;
    Merci à tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. [Toutes versions] coller les données d'une plage d'une cellule dans une cellule d'une autre feuille[VBA]
    Par arthson dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 24/01/2012, 17h37
  3. [XL-2007] problème de codage en vba ("copie d'une partie d'une cellule dans une cellule vide")
    Par skipeemed dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 26/10/2010, 17h01
  4. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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