Bonjour � tous,
J'ai une stringgrid dont je veux que, si on clique sur une ligne, celle-ci change de couleur..., apr�s avoir remis en couleur normale des lignes qui auraient ant�rieurement chang� de couleur par la m�me manip. Probl�me classique si l'on en croit le nombre de questions pos�es � ce sujet sur Internet et dans les forums Delphi.... Mais j'ai lu la faq, Gilles Louise, Leblanc, L'ours des Carpathes et d'autres, piqu� des bouts de code un peu partout, souvent apr�s les avoir traduits de Delphi, (que je ne connais pas) et �a fait trois jours que rien ne marche et que j'en suis toujours au m�me point, � savoir que je ne change que la couleur de la cellule sur laquelle je clique et que toute cellule cliqu�e prend cette couleur.
J'ai piqu� (et transcrit) le code suivant dans un forum delphi, o� il est certifi� que toute la ligne change de couleur et o� la discussion est consid�r�e comme r�solue... Et pourtant �a ne marche pas: le r�sultat est celui que je d�cris au-dessus.
Nota: RowSelected est un int initialis� dans la fonction GrilleFileSelectCell � la valeur du param�tre ARow transmis � cette derni�re
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
32
33
34 void __fastcall TFileWeb::GrilleFileDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { AnsiString ContenuCellule; int x,y; ContenuCellule=GrilleFile->Cells[ACol][ARow]; x=Rect.Left; y=Rect.Top; if((State.Contains(gdFixed))) GrilleFile->Canvas->Brush->Color=clBtnFace; else if((State.Contains(gdSelected))) GrilleFile->Canvas->Brush->Color=clYellow; else GrilleFile->Canvas->Brush->Color=clWhite; GrilleFile->Canvas->FillRect(Rect); if((State.Contains(gdSelected))) GrilleFile->Canvas->Font->Color=clRed; else GrilleFile->Canvas->Font->Color=clBlack; GrilleFile->Canvas->TextOut(x,y,ContenuCellule); if(ARow==RowSelected&&RowSelected!=0) { GrilleFile->Canvas->Brush->Color=clYellow; GrilleFile->Canvas->Font->Color=clRed; GrilleFile->Canvas->TextOut(x,y,ContenuCellule); } }
Est-ce que quelqu'un peut m'expliquer ce qui se passe et ce que je devrais faire ?
Merci d'avance !
Partager