学习编制一个取色软件,如何在ListBox中加入色块和颜色值。我的代码如下,不知为什么不行?求助。
procedure TfrmCPicker.LBCjDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
tmpOldColor: TColor;
begin
with (Control as TListBox).Canvas 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+1,(Control as TListBox).Items[Index]);
end;
end;procedure TfrmCPicker.btnPickClick(Sender: TObject);
begin
LBCj.Items.Add(EdColor.Text);
end;
procedure TfrmCPicker.LBCjDrawItem(Control: TWinControl; Index: Integer;
Rect: TRect; State: TOwnerDrawState);
var
tmpOldColor: TColor;
begin
with (Control as TListBox).Canvas 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+1,(Control as TListBox).Items[Index]);
end;
end;procedure TfrmCPicker.btnPickClick(Sender: TObject);
begin
LBCj.Items.Add(EdColor.Text);
end;
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
Style属性问题,呵呵
with (Control as TListBox) do—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————