如何防止在组件TColorBox中选择特定颜色?

时间:2017-08-17 06:48:51

标签: delphi delphi-2010

有人知道如何从TColorBox的下拉列表中删除某种颜色吗?

enter image description here

3 个答案:

答案 0 :(得分:5)

您可以从Items集合中删除预先填写的内容。例如:

procedure TForm31.Button1Click(Sender: TObject);
var
  Index: Integer;
begin
  Index := ColorBox1.Items.IndexOfObject(TObject(clGreen));
  if Index <> -1 then
    ColorBox1.Items.Delete(Index);
end;

答案 1 :(得分:3)

您需要删除列表中的颜色:

procedure TForm7.FormCreate(Sender: TObject);
var i: Integer;
begin
  i := ColorBox1.Items.IndexOf('clGreen');
  if i <> -1 then
    ColorBox1.Items.Delete(i)
  else
    Showmessage('invalid color');
end;

答案 2 :(得分:3)

您的问题标题:

  

如何防止在组件TColorBox中选择特定颜色?

所以防止不是删除,你有两个选择:

  • 防止选择:

    procedure TForm1.FormCreate(Sender: TObject);
     begin
      ColorBox1.ItemIndex := -1;
     end;
    
    procedure TForm1.ColorBox1Change(Sender: TObject);
    begin
    if ColorBox1.Colors[ColorBox1.ItemIndex] = clNavy then //Choose any color
      begin
        ShowMessage('Invalid color');
        ColorBox1.ItemIndex := -1;
      end;
    end;
    
  • 如果您需要删除Color,那么您有两个答案可以做到。