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

Composants VCL Delphi Discussion :

[StringGrid][goEditing]


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut [StringGrid][goEditing]
    bonjour à tous,

    je me prends la tête depuis plusieurs jours avec un truc certainement tout bete : j'utilise un composant StringGrid pour charger des données provenant de bdd et/ou de fichiers.

    Je voudrai, à la fin de mon chargement que la cellule (1ère colonne, 1ère) soit éditer. C'est à dire, que la valeur de cette cellule soit sélectionnée pour modifications (le fond de la cellule apparait de manière colorée). Vous voyez ???

    Tout bete peut être !! mais... JE NE TROUVE PAS

    un coup de main ?

    thanks a lot
    @

  2. #2
    Membre Expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Par défaut
    Pour cela, il faut utiliser les propriétés Row et Col
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    StringGrid1.Col := 0;
    StringGrid1.Row := 0;
    Ainsi la cellule ayant la colonne 0 et la ligne 0 est sélectionné.

    a+

  3. #3
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    salut à toi et merci de ton aide,

    ta solution ne marche pas. Ce que je recherche à reproduire c'est un OnGetEditText.

    Le 1er élément de la StringGrid doit être automatiquement édité.

    1/ je charge ma StringGrid
    2/ je la repaint : coloration d'une ligne sur 2+mise en forme 1ère ligne du tableau
    3/Positionner sur la 1ère cellule et l'éditer, de sorte que l'utilisateur puisse saisir automatiquement sans avoir à sélectionner la cellule.

    peut être que je ne suis pas très clair, donc pour faire ultra simple : cliquer sur une cellule de votre StringGrid, celle-ci passe en mode édition, elle est modifiable directement !!

    c'est ce que je veux réussir à faire.

    pourquoi les choses les plus simples sont toujours les plus compliquées

  4. #4
    Membre Expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Par défaut
    Citation Envoyé par PpPool
    ta solution ne marche pas.
    Pourquoi cela ne fonctionne pas, quel est le message d'erreur.

    C'est cela que j'utilise dans ma Stringgrid et cela fonctionne (mise en surbrillance).

    Peux tu m'apporter plus de précision sur le disfonctionnement ?

  5. #5
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    re-bonjour, re-merci de ton aide

    je n'ai pas de message d'erreur. Je suis bien positionné sur la cellule, mais je dois de nouveau cliquer sur celle-ci pour la mettre en surbrillance.
    Ce que je voudrai automatiser.

    Je suis en train de regarder du coté de goDrawFocusSelected.
    je n'avais pas mis cette option à true. je l'ai mis, mais apparement cela ne change rien.


    Autres options activées de la StringGrid :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    [goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRangeSelect,goDrawFocusSelected,goEditing]
    peut-etre est-ce du au fait que j'ai une procédure DrawCell pour repaindre ma StringGrid ?

    ?
    @

  6. #6
    Membre Expert

    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2004
    Messages
    2 123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Responsable de service informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 123
    Par défaut
    Je crois que c'est ton goRangeSelect qui permet entre autre une selection multiple. Il faudrait la désactivé lors du positionnement de la sélection.

    Sinon, cela devrait marcher, j'ai testé et, pour moi, cela fonctionne.

  7. #7
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut
    re

    j'ai désactivé goRangeSelect. j'ai enlevé ma procédure DrawCell, et j'obtiens une mise en surbrillance de la cellule sélectionnée, alors que je souhaiterai une mise en surbrillance uniquement du texte de la cellule.

    je suis compliqué !!

    merci encore pour ton aide

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    292
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 292
    Par défaut
    Ce à quoi tu fais référence se trouve dans la partie protégée de la classe tstringlist. unité Grids. Donc voici un horrible hack !!! J'aime bien regarder les unités delphi, quand je pense que mon code n'est pas parfait ça me rassure toujours.

    Voici le hack. Delphi autorise le changement de visibilité. Donc on commence par déclarer un descendant de TStringGrid
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
      TMyStringGrid = class(TStringGrid)
      public
      	procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
          X, Y: Integer); override;
      end;
     
    procedure TMyStringGrid.MouseDown(Button: TMouseButton; Shift: TShiftState;
          X, Y: Integer);
    begin
    	//inherited MouseDown(Button, Shift, X, Y);
    end;
    Ensuite on force le typecast pendant le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    var
    	r: TRect;
            x, y: Integer;
    begin
    	r := StringGrid1.CellRect(1,1);
            x := trunc((r.Left + r.Right)/2);
            y := trunc((r.Top + r.Bottom)/2);
    	TMyStringGrid(StringGrid1).MouseDown(mbLeft, [], x, y);
    end;
    Une remarque, le code de la fonction est commenté car StringGrid1 est crée en tant que TStringGrid ce qui fait que la table virtuelle contient bien un pointeur vers la fonction de TStringGrid et non vers la fonction descendante. Il s'agit juste de tromper le compilateur !! La fonction de TMyStringGrid n'est jamais appelée

    je l'ai testé ca fonctionne. Attention de bien choisir une case que l'on peut éditer.

  9. #9
    Membre éclairé
    Inscrit en
    Novembre 2002
    Messages
    549
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 549
    Par défaut


    c'est exactement çà!!!! thanks a lot

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

Discussions similaires

  1. tester si stringgrid est en GoEditing
    Par PhilLU dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2014, 22h20
  2. c++ builder,pbm avec StringGrid et goEditing
    Par nadia2222 dans le forum C++Builder
    Réponses: 1
    Dernier message: 26/05/2008, 11h16
  3. StringGrid sort
    Par clovis dans le forum C++Builder
    Réponses: 4
    Dernier message: 20/10/2004, 22h46
  4. Multi lignes dans un StringGrids ?
    Par Xavier dans le forum C++Builder
    Réponses: 3
    Dernier message: 28/11/2002, 00h15
  5. StringGrid et colonnes
    Par Delph dans le forum Composants VCL
    Réponses: 2
    Dernier message: 02/08/2002, 12h35

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