webForumDet fria alternativet

Flera färger på en rad

Programmering

2 svar · 205 visningar · startad av FreeZer

Medlem sedan jan. 2001950 inlägg
Frågan#1

Här fick jag hjälp med hur jag sätter färg på vissa rader i en listbox:
http://www.webforum.nu/showthread.php?s=&threadid=41529

Men kan jag sätta en massa olika bakgrundsfärger på en rad i en listbox? t.ex. att 10% ska vara röd och 40% ska vara en annan färg och resten en tredje färg. Går det att göra så?

Medlem sedan apr. 20003 971 inlägg
#2

Ändra Canvas.Font.Color till rätt färg beroende på Index.

Vad är problemet?

Medlem sedan juni 2000350 inlägg
#3

Något som liknar detta borde funka.

procedure TForm1.ListBox1DrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
ARect: TRect;
begin
with Control as TListBox do
begin
ARect := Rect;
Canvas.Brush.Color := clGreen;
Arect.Right := Trunc(Rect.Right * 0.1*index);
Canvas.FillRect(ARect);

Canvas.Brush.Color := clRed;
Arect.Left := Arect.Right;
Arect.Right := Rect.Right;
Canvas.FillRect(ARect);

end;
end;

257 ms totalt · 4 externa anrop · v20260731065814-full.bd618308
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)