Salut à tous,
J'aimerais savoir s'il est possible de mettre des images dans les cellule d'un DrawGrid.
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 StringGrid1->Canvas->FillRect(Rect); ImageList1->Draw(StringGrid1->Canvas,Rect.Left,Rect.Top,1);
@ +![]()
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void __fastcall StringGridDrawCell(TObject *Sender, int ACol, int ARow, TRect &Rect, TGridDrawState State)
@ +![]()
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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,
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 :State.Contains.....
@ +
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 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.
@+
Partager