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

Delphi Discussion :

Stringgrid: Éditer les lignes et les colones fixes.


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut Stringgrid: Éditer les lignes et les colones fixes.
    J'ai un ptit probleme avec un stringgrid. J'ai des colones fixe et des lignes fixe. Mais, je veut que l'utilisateur puisse éditer ces lignes aussi. Comment je fait ca? J'ai cherché partout mais ya personne qui en parle. Peut etre parceque c'est trop évidant

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Elles ne sont pas éditable.
    Tu peux mettre à 0 les propriétés fixedcols et fixedrows.
    Dans l'évenement OnDrawCell tu peints la 1ere ligne et la 1ere colonne
    pour simuler l'aspect visuel des élements fixes.


    Exemple de code :
    Places à 0 les properties FixedRows & FixedCols de la StringGrid dans l'inspecteur d'objet.
    Ajoutes l'unité Extctrls dans les uses ( pour la routine Frame3D)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
       if (ACol = 0) or (aRow =0) then
       begin
         with StringGrid1 do
         begin
           Frame3D(Canvas,Rect, clWhite , clBlack,1);
           Canvas.Brush.Color := clBtnFace;
           Canvas.FillRect(Rect);
         end;
       end;
    end;

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Petite amélioration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    procedure TForm1.Button1Click(Sender: TObject);
    var I, J: Integer;
    begin
      for J := 0 to StringGrid1.ColCount -1 do
       for I := 0 to StringGrid1.RowCount -1 do
         if (I = 0) or (J=0) then
           StringGrid1.Cells[J, I] := Format('Item [%d][%d]', [J, I]);
    end;
     
    procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
       if (ACol = 0) or (aRow =0) then
       begin
         with StringGrid1 do
         begin
           if (gdSelected in State) or (gdFocused in State) then
             Frame3D(Canvas,Rect, clBlack, clWhite, 1)
           else
             Frame3D(Canvas,Rect, clWhite , clBlack,1);
     
           Canvas.Brush.Color := StringGrid1.FixedColor;
           Canvas.FillRect(Rect);
     
           if (gdSelected in State) then
             Canvas.TextRect(Rect, Rect.Left +1, Rect.Top +1, Cells[ACol, ARow])
           else
            Canvas.TextRect(Rect, Rect.Left +2, Rect.Top +2,Cells[ACol, ARow]);
         end;
       end;
    end;

  4. #4
    Membre confirmé Avatar de poly128
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    102
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 102
    Par défaut
    Ok merci, ca marche parfaitement.

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Février 2006
    Messages
    624
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 624
    Par défaut
    Si tu as besoins de fonctionnalités plus avancées, n'hésites pas.

    @+

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

Discussions similaires

  1. Redimensionner les colonnes et les lignes d'un stringGrid
    Par codial dans le forum Composants VCL
    Réponses: 12
    Dernier message: 29/09/2009, 15h50
  2. Réponses: 4
    Dernier message: 05/09/2008, 11h03
  3. Réponses: 2
    Dernier message: 19/04/2007, 11h23
  4. Réponses: 1
    Dernier message: 14/11/2006, 17h32

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