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 :

Editer ou non une cellule dans une stringGrid ?


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    17
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 17
    Par défaut Editer ou non une cellule dans une stringGrid ?
    Bonjour a tous !!!
    Voici ce que j'aimerai faire :
    Dans un tableau de type stringGrid , j'aimerai que l'utilisateur ne puisse pas pouvoir editer certaines cases du tableau (lesquelles cellules auront deja du texte a l'interieur) , la propriete onEditing a true permet d'editer toutes les cellules .Moi je voudrai avoir le controle sur certaines.
    J'avais pour idee d'utiliser l'evenement " StringGrid1.OnSelectCell" qui prend pour parametres un Tobjet , les coordonnee de la cellule colonne et ligne , et une variable de type booleen canselect qui permet l'edition ou non de cette cellule mais mon probleme c'est le Tobjet je ne sais pas quoi mettre .
    Quelqu'un pourrait m'aider ?
    merci d'avance
    +++

  2. #2
    Expert confirmé
    Avatar de Cl@udius
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2006
    Messages
    4 878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 4 878
    Par défaut
    Salut,

    Tu n'as pas à t'occuper du TObject qui est le paramètre Sender. Ce TObject est simplement ton TStringGrid.

    Suivant les coordonnées de la cellule renseigne CanSelect. Ca peut ressembler à ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
      var CanSelect: Boolean);
    begin
      CanSelect := (ACol < 3) and (ARow > 2); // Par exemple
    end;
    Voilà à toi d'adapter ta condition voulue !
    @+

  3. #3
    Membre très actif
    Inscrit en
    Décembre 2004
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 188
    Par défaut
    J'ai fait comme ca. J'ai créé un composant descendant de TStringGrid (ca prend 2 minutes) et j'ai surchargé la méthode CanEditShow.
    FOnCanModify est un evenement qui est publié.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function TMyStringGrid.CanEditShow : Boolean;
    begin
       Result := Inherited CanEditShow;
       If not Result then exit;
       If Assigned(FOnCanModify) then FOnCanModify(Col,Row,Result);
    end;

  4. #4
    Membre éprouvé
    Avatar de TicTacToe
    Inscrit en
    Septembre 2005
    Messages
    1 940
    Détails du profil
    Informations personnelles :
    Âge : 53

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 940
    Par défaut
    Lorsque tu changes de cellules, et que tu permets ou non l'edition, tu peux te servir de ce code (je le fais sur un DBStringGrid, ca fonctionne bien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
         BEdit := True/False selon ta permission
         if BEdite
           then MaGrid.Options := MaGrid.Options + [ goEditing ]
           else MaGrid.Options := MaGrid.Options - [ goEditing ];
    Bon courage !
    Section Delphi
    La mine d'or: La FAQ, les Sources

    Un développement compliqué paraitra simple pour l'utilisateur, frustrant non ?
    Notre revanche ? l'inverse est aussi vrai ;-)

Discussions similaires

  1. [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
  2. [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
  3. [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
  4. Afficher une image dans une cellule d'une gridview
    Par guigui11 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/09/2007, 10h18
  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