Comme le dit le titre je veut Afficher une image dans la première cellule avant le texte de chaque line d'un TStringgird ,ca ce passe dans OnDrawCell le problème et que j'ais déjà un code dans OnDrawCell pour coloré les lignes une par une
Alors j'ais ajouter ce code après l'affichage du texte on décalant le texte d'un (Left+20)
le problème et qu’il m'affiche dans tout les cellules et il décale le texte dans tout les cellule ???
et moi je veut qu il m’affiche limage et décale le texte que dans la première cellule de chaque line
pour info limage et dans un Timageliste que j’ais nommé Imgs come dans le code
Code : Sélectionner tout - Visualiser dans une fenêtre à part Imgs.Draw(Canvas,Rect.Left,Rect.Top,12);
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 procedure TMainForm.CA_SYSTEMSDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState); begin With Sender As TStringGrid Do With Canvas Do Begin { sélection de la couleur de fond } If gdFixed in State Then Brush.Color := clBtnFace Else If gdSelected In State Then Brush.Color := clNavy Else If Odd(ARow) Then Brush.Color := $FFE0FF Else Brush.Color := $FFFFE0; { Dessin du fond } FillRect(Rect); { Sélection de la couleur d'écriture } If gdSelected In State Then Font.Color:=clWhite Else Font.Color:=clBlack; { Dessin du texte } TextOut(Rect.Left+20,Rect.Top,Cells[ACol,ARow]); Imgs.Draw(Canvas,Rect.Left,Rect.Top,12); End; end;
Partager