Bonjour à tous, il y a un début à tout alors voici mon premier post, n'ayant trouvé aucune information sur ce sujet.
Voilà mon problème, j'ai une CheckListBox qui contient un item pour chaque jour de la semaine et je cherche a retourner une chaine de caractère de la forme 'DLMMJVS' dans un StringGrid.
Jusque là pas bien compliqué me direz vous. J'aimerais si c'est possible (qu'est ce qui n'est pas possible avec Delphi?!?) que la chaîne affiche la lettre des jours cochés en vert et la lettre de ceux qui ne le sont pas en rouge.
Ex: 'DLMMJVS'.
Si quelqu'un connait une solution merci d'avance
En effet, tu vas devoir dessienr chaque caractère un par un.
Voila une procédure similaire à ce que tu veux faire, tu n'as qu'a modifier le code de choix de la couleur par celui qui convient pour ton code.
A mettre dans le OnDrawCell:
<hr size= "2" width="100%" /> procedure TForm1.SGDrawCell(Sender: TObject; ACol, ARow: Integer; Rect: TRect;
State: TGridDrawState);
var X, Y, I: Integer;
S: string;
begin {>> Initialisation }
S : = SG.Cells[ACol, ARow];
Y := Rect.Top + 2;
X := Rect.Left + 2;
SG.Canvas.FillRect(Rect);
{>> Ecriture }
for I : = 1 to Length(S) do
begin
{>> Choix de la couleur: ici les caractères d'indice impair sont rouges,
les autres sont noirs }
if Odd(I) then SG.Canvas.Font.Color := clRed
else
SG.Canvas.Font.Color : = clBlack;
{>> Dessin du caractère }
SG.Canvas.TextOut(X, Y, S[I]);
{>> Décalage du début }
Inc(X, SG.Canvas.TextWidth(S[I]));
end;
end;
<hr size="2" width="100%" />
A++
Flo
Je pense qu'il va falloir trouver autre chose... car ça va pas être
simple de gérer des couleurs différentes pour chacun des caractères.
Si tu y tiens vraiment, regardes du côté du Canvas.Pen.Color,
Canvas.TextOut, et le tout en récupérant les Rect des cellules dans
lesquelles tu veux écrire...
Attention, j'ai remarqué que les écritures ou dessins dans les grilles
sont gourmandes. Sur les machines lentes, ça risque de scintiller...