关于在TListBox中加入色块的问题?请高手详细解答?
mhkk 2003-10-16 06:12:23 先谢了!
正在学习制作一个取色软件,想在TListBox中显示选取的颜色,但是每次选取后前面的颜色块都被换成了最后选取的颜色。应该如何解决?我的代码如下:
procedure TfrmCPicker.LBCjDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
tmpOldColor: TColor;
tmpShape:TShape;
begin
with (Control as TListBox) do
begin
tmpOldColor:=Canvas.Brush.Color;
Canvas.FillRect(Rect);
Canvas.Brush.Color:=RGBToColor(strtoint(EdRed.Text),strtoint(EdGreen.Text),strtoint(EdBlue.Text));
Canvas.Rectangle(Rect.Left+4,Rect.Top+1,(Rect.Right+Rect.Left)div 3,Rect.Bottom-1);
Canvas.Brush.Color:=tmpOldColor;
Canvas.TextOut((Rect.Left+Rect.Right)div 2,Rect.Top+4,(Control as TListBox).Items[Index]);
end;
end;
procedure TfrmCPicker.btnPickClick(Sender: TObject);
begin
LBCj.Items.Append(EdColor.Text);
end;