TStringGrid, insertion d'une image et du texte dans une même cellule
jderf
Messages postés189Date d'inscriptionmercredi 29 décembre 2004StatutMembreDernière intervention 2 octobre 2014
-
24 sept. 2010 à 15:44
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 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]);
A voir également:
TStringGrid, insertion d'une image et du texte dans une même cellule