Salut à tous,
J'aimerais savoir s'il est possible de mettre des images dans les cellule d'un DrawGrid.
Version imprimable
Salut à tous,
J'aimerais savoir s'il est possible de mettre des images dans les cellule d'un DrawGrid.
Salut,
Par exemple, si tu stockes les images dans une TImageList, dans l'évènement 'DrawCell' :
par ex....Code:
1
2
3 StringGrid1->Canvas->FillRect(Rect); ImageList1->Draw(StringGrid1->Canvas,Rect.Left,Rect.Top,1);
@ + :wink:
Merci, je vais essayer ca, ca devrait marcher là...
@+
Salut,
J'ai réussit à faire afficher les images. Il ne me reste qu'à faire en sorte qu'il s'affiche l'image dans la case désirée, donc à aller voir les tutorials.
Salut,
Ben dans DrawCell
tu peut utiliser ACol et ARow, pour 'vérifier' les coordonnées...Code:
1
2 void __fastcall StringGridDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
@ + :wink:
Salut,
Maintenant que je réussit à faire afficher les images dans les cellules, comment on fait pour faire afficher une image dans une cellule, sans sélectionner cette cellule par la souris?
Jai trouvé ce code mais comment l'adapter, car je voudrais que plusieurs cases ait la même images et d'autres avec une différente.
Code:
1
2
3
4
5
6
7 f(State.Contains(gdSelected)) //sert a sélectionner la case { DrawGrid1->Canvas->FillRect(Rect); ImageList1->Draw(DrawGrid1->Canvas,Rect.Left,Rect.Top,1); }
Salut,
je vais essayer les ACol et ARow, faut juste trouver comment ca fonctionne lol, un exemple ou une référence vers un tutoriel serait apprécié.
@+
Salut,
:koi: heu, ca te plais pas de tester l'indice de ligne (ARow) et de colonne (ACol) de la cellule en cours de dessin pour savoir ce que tu en fais.
Surtout que tu peut tester en meme temps comme tu l'as fais. J'avais 'bricolé' pour autre chose :Citation:
State.Contains.....
@ + :wink:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 void __fastcall TForm2::StringGrid1DrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State) { if (ACol == 0) { StringGrid1->Canvas->Brush->Color = clInfoBk; StringGrid1->Canvas->FillRect(Rect); Form1->ImageList1->Draw(StringGrid1->Canvas,Rect.Left + 9,Rect.Top + 9,7); Form2->StringGrid1->Canvas->Font->Color = clRed; Form2->StringGrid1->Canvas->TextOutA(Rect.Left + 4, Rect.Top + 1, AnsiString("Supprimer") + ARow); } else { if (ARow == 2) { StringGrid1->Canvas->FillRect(Rect); Form1->ImageList1->Draw(StringGrid1->Canvas,Rect.Left + 9,Rect.Top + 9,8); } } }
Salut,
J'ai adapté ton exemple et ça fonctionne merci. :D
@+