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 31 32 33 34 35 36 37 38 39 40
|
Procedure Tmaform.ListBox1DrawItem(Control:TWinControl;Index:Integer;Rect:TRect;State:TOwnerDrawState);
begin
with Sender as TListbox do
begin
// erase
Canvas.FillRect (Rect);
// draw item
Canvas.Font.Color := TColor (Items.Objects[Index]);
Canvas.TextOut(Rect.Left, Rect.Top,Items[Index]);
nbITEM := ItemCount;
if Index >0 Then
Indic1 := Index-1 ;
if Index < nbITEM Then
Indic2 := Index+1 ;
if Index >0 Then
begin
GLORGB_Cur.R:=(GLORGB_Start.R+MulDiv(Indic1,GLORGB_Dif.R,nbITEM));
GLORGB_Cur.G:=(GLORGB_Start.G+MulDiv(Indic1,GLORGB_Dif.G,nbITEM));
GLORGB_Cur.B:=(GLORGB_Start.B+MulDiv(Indic1,GLORGB_Dif.B,nbITEM));
ColordebLoc:=RGB(GLORGB_Cur.R,GLORGB_Cur.G,GLORGB_Cur.B);
end
else
ColordebLoc:=GloBalCordeb;//(couleur windows)
if Index < nbITEM Then
Begin
GLORGB_Cur.R:=(GLORGB_Start.R+MulDiv(Indic2,GLORGB_Dif.R,nbITEM));
GLORGB_Cur.G:=(GLORGB_Start.G+MulDiv(Indic2,GLORGB_Dif.G,nbITEM));
GLORGB_Cur.B:=(GLORGB_Start.B+MulDiv(Indic2,GLORGB_Dif.B,nbITEM));
ColorfinLoc:=RGB(GLORGB_Cur.R,GLORGB_Cur.G,GLORGB_Cur.B);
end
else
ColorfinLoc:=GloBalCorfin;//(couleur windows)
Degrade(Canvas,rect,ColordebLoc,ColorfinLoc);
...
end; |
Partager