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 :

Utiliser un Stringgrid


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 24
    Points
    24
    Par défaut Utiliser un Stringgrid
    Bonjour,
    J’ai un problème pour l’utilisation d’un Stringgrid si quelqu’un peut m’aider,
    Je veux que les valeurs dans certaines cellules (dans l’exécution bien sûre) soient de couleur différentes par exemple en rouge,
    J’attends vos aides.

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 344
    Points : 3 122
    Points
    3 122
    Par défaut
    Bonjour,
    tu peux faire :

    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
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
         Grille.Cells[1,1] := 'AAAA' ;
         Grille.Cells[1,2] := 'BBBB' ;
         Grille.Cells[2,1] := 'CCCC' ;
         Grille.Cells[2,2] := 'DDDD' ;
    end;
    { ================================================== }
    procedure TForm1.GrilleDrawCell(Sender: TObject; ACol, ARow: Integer;
      Rect: TRect; State: TGridDrawState);
    begin
        If ((ARow = 2) And (ACol = 1)) Then
           Grille.Font.Color := ClRed
        Else
           Grille.Font.Color := ClBlack   ;
    end;
    A+
    Charly

  3. #3
    Invité1
    Invité(e)
    Par défaut exemple
    bonjour

    regardes cet exemple


    http://www.phidels.com/php/index.php...63e6d96afd51a0


    bonne journée

  4. #4
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Merci Charly et Samy larson c’est presque la même chose,
    Mais je veux que la coloration soit à l’exécution, par exemple programmer un boutton spécialement pour colorier des cellules qui se changent d’un exécution à un autre, car j’ai un calcul à faire pour déterminer les cellules que je doit les coloriées,
    J’espère que j’étais clair et que vous pouvez m’aider.

  5. #5
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    Le calcul est-il fixe? (du genre StrToInt(Grille.Cells[ACol,ARow]) > StrToInt(Edit1.text))
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  6. #6
    Membre à l'essai
    Inscrit en
    Décembre 2008
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 32
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Linkin Voir le message
    Le calcul est-il fixe? (du genre StrToInt(Grille.Cells[ACol,ARow]) > StrToInt(Edit1.text))
    Le calcul n’est pas fixe, j’ai un stringgrid qui contient 32 lignes et 32 colonnes, alors si je fait l’exécution pour la première fois je peux trouver par exemple que les cellules (1,2), (10,30), (16,3) et (4,31) doit être coloré, si je fait l’exécution pour la deuxième fois je peut trouvé d’autres cellules qui doivent être colorées.
    Remarque : je veux que soit les cellules coloriées soit les valeurs qui se trouvent dans les cellules soit d’une autre couleur.

  7. #7
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Il faut déclarer un tableau qui mémorisera la couleur de chaque cellule de ta grille, du moins au minimum un tableau pour stocker l'information sur chaque cellule.

    Il faudrait avoir un mode édition qui te permet de sélectionné les cellules participants (ie OnCellClick) au calcul de façon à modifier le tableau et un mode calcul consistant à s'appuyer sur ce tableau (ie mode lecture) pour afficher la couleur ad hoc.

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Février 2008
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 141
    Points : 142
    Points
    142
    Par défaut
    Ce qu'il y a à retenir du code de Charly910:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    procedure TForm1.GrilleDrawCell( Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);
    begin
        If ((ARow = 2) And (ACol = 1)) Then
           Grille.Font.Color := ClRed
        Else
           Grille.Font.Color := ClBlack   ;
    end;
    Cette fonction sera appelée par ton programme juste avant le dessin de chaque cellule de ta StringGrid. Dans son exemple, Charly910 a mis cette condition très simple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If ((ARow = 2) And (ACol = 1)) Then...
    qui fait que seule la cellule de la 2e ligne, 1ère colonne sera dessinée en rouge.

    Il suffit de remplacer cette condition par ta condition à toi : à quelle condition veux-tu que ta cellule soit en rouge? comment déterminer si cette condition est vraie pour la cellule située en (ARow, ACol)?
    *LeGEC*

  9. #9
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    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
     
    var color1,color2:TColor;
    procedure TForm1.button1click;
    begin
           if valuer>0 then
             begin
               color1:=$FF0000;color1:=$FF00FF;
             end
          else
             begin
               color1:=$FFFF00;color1:=$FF0FFF;
             end
    end;
    procedure TForm1.GrilleDrawCell( Sender: TObject; ACol, ARow: Integer;  Rect: TRect; State: TGridDrawState);
    begin
        If ((ARow = 2) And (ACol = 1)) Then
           Grille.Font.Color := Color1
        Else
           Grille.Font.Color := Color2   ;
    end;
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

Discussions similaires

  1. Alternative a l'utilisation d'un stringgrid
    Par QAYS dans le forum Composants VCL
    Réponses: 3
    Dernier message: 28/09/2007, 16h47
  2. [StringGrid] utilisation
    Par Morfus dans le forum Delphi
    Réponses: 4
    Dernier message: 21/02/2007, 15h24
  3. graphe en utilisant un StringGrid et un TImage
    Par blondelle dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/07/2006, 20h14
  4. graphe en utilisant un StringGrid et un Tchart
    Par blondelle dans le forum C++Builder
    Réponses: 6
    Dernier message: 05/07/2006, 17h34
  5. Utilisation d'une StringGrid
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/09/2004, 15h27

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