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.
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.
Bonjour,
tu peux faire :
A+
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;
Charly
Mon site : http://lapaille.byethost24.com/index.htm
bonjour
regardes cet exemple
http://www.phidels.com/php/index.php...63e6d96afd51a0
bonne journée
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.
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
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.
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.
Ce qu'il y a à retenir du code de Charly910:
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
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;
qui fait que seule la cellule de la 2e ligne, 1ère colonne sera dessinée en rouge.
Code : Sélectionner tout - Visualiser dans une fenêtre à part If ((ARow = 2) And (ACol = 1)) Then...
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*
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
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager