TStringGrid, insertion d'une image et du texte dans une même cellule

jderf Messages postés 189 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 2 octobre 2014 - 24 sept. 2010 à 15:44
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 19 oct. 2010 à 17:11
Bonjour,

Je souhaite insérer une image dans une cellule, mais conserver aussi le texte à coté de l'image. Le code ci-dessous (placé dans OnDrawCell) permet de le faire dans le cas ou la StringGrid est seulement en lecture. Je masque l'écriture du texte en mettant la font de la même couleur que le fond, puis j'ecris le texte en rouge avec canvas.textout.

Par contre je souhaite avoir une stringGrid modifiable et là je ne m'en sort pas. De plus faire SG.Font.Color := ClMaCouleur semble déclencher l'evenement OnDrawCell
Me reste toujour l'option de faire une colonne à coté pour l'image mais c'est pas mon idée de départ !
Alors si vous avez une idée, merci pour le coup de main.

// Couleur de la Font idem à la couleur du Fond
SG.Font.Color := SG.Color;

// Insertion de l'image (16x16 pixels)dans la cellule
Bitmap:=TBitmap.Create;
ImgListe.GetBitmap (0,Bitmap);
CellRect := SG.CellRect(ACol,ARow);
CellRect.Left := CellRect.Left+2;
CellRect.Top := CellRect.Top+2;
CellRect.Right := CellRect.Left + 16;
CellRect.Bottom := CellRect.Top + 16;
SG.Canvas.StretchDraw(CellRect,Bitmap);
Bitmap.Free;

// Ecriture du texte sur le Canvas
SG.Canvas.Font.Color := ClRed;
SG.Canvas.TextOut(CellRect.Right + 1 , CellRect.Top, SG.Cells[ACol,Arow]);

1 réponse

cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
19 oct. 2010 à 17:11
Bonsoir,

Alors si vous avez une idée

et si tu utilisais deux images,
une contenant l'image et l'autre contenant le texte ?

cantador
0
Rejoignez-nous