Couleur de la sélection d'un TStringGrid

sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 - 2 août 2005 à 00:01
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 - 2 août 2005 à 11:08
Je n'arrive pas à enlever ce bleu de sélection de toutes les cases d'un TStringGrid et ce de façon permanente qqn aurait-il une idée ?

(j'ai Delphi 6 Pro)

SISI231

3 réponses

ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 11
2 août 2005 à 00:41
dans l'événement OnDrawCell de ta StringGrid,mets le code suivant :



procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

begin

if (gdFocused in State) then // Si la cellule est sélectionnée,

begin

StringGrid1.Canvas.FillRect(Rect); // On enlève le bleu de sélection.

//StringGrid1.Canvas.DrawFocusRect(Rect); // Si cette ligne est
décommentée, elle cachera le rectangle de sélection en pointillés en le
redessinant sur lui-même.

end

end;

@+
Bonne Prog'
Nico [www.ni69.new.fr]

N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
sisi231 Messages postés 207 Date d'inscription mercredi 5 mars 2003 Statut Membre Dernière intervention 29 mars 2013 5
2 août 2005 à 09:43
Ca ne marche pas et ça m'efface parfois le contenu (le string) de la case.

SISI231
0
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 11
2 août 2005 à 11:08
Désolé, j'avais oublié l'éventualité d'un texte dans la cellule...

Il te suffit de faire comme ceci :



procedure TForm1.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect; State: TGridDrawState);

begin

if (gdFocused in State) then // Si la cellule est sélectionnée,

begin

StringGrid1.Canvas.FillRect(Rect); // On enlève le bleu de sélection.

StringGrid1.Canvas.DrawFocusRect(Rect); // On cache le rectangle de sélection.

StringGrid1.Canvas.Font.Name := 'MS Sans Serif'; // Réglage de la police d'écriture du texte...

StringGrid1.Canvas.Font.Size := 8;

StringGrid1.Canvas.Font.Color := clblack;

StringGrid1.Canvas.TextOut(Rect.Left+2, Rect.Top+2, StringGrid1.Cells[ACol,ARow]); // On écrit le texte dans la cellule.

end

end;


@+
Bonne Prog'
Nico [www.ni69.new.fr]
<hr size ="2" width="100%">
N'oubliez pas de cliquer sur Réponse acceptée lorsque la réponse vous convient !
0
Rejoignez-nous