我想在TColorBox的下拉选项中加入自定义的三种颜色,看到其他帖子好像应该把设置style为cbCustomColor类型。可是设置了以后,下拉的选择中会出现一个custom的选项,点击后可以自定义颜色。如果我只想在下拉框中加入我自定义的颜色,比如红、黄、蓝,不要custom的那一项,该怎么实现呢,谢谢!

解决方案 »

  1.   

    代码如下:
    procedure TForm1.SetColorBoxItems(ColorBox : TColorBox);
    var
      a,b,c:cardinal;
    begin
      ColorBox.Style:=[cbCustomColor];  a:=clred;
      ColorBox.Items.AddObject('浅绿色',TObject(a));  a:=clyellow;
      ColorBox.Items.AddObject('黑色',TObject(a));
      
      a:=clBlue;
      ColorBox.Items.AddObject('蓝色',TObject(a));end;
      

  2.   

      ColorBox1.Items.AddObject('MyColor',TObject(RGB(123,222,111)));
      

  3.   


        按照你的这个代码也可以,问题是style:=cbCustomColor时, 这样生成的下拉框选项中的第一项会有个custom的项,如果选择的话会出来一个自定义颜色的对话框。
       可是我不想有这个自定义的颜色啊,我就想让用户只能选择我提供的那几个颜色的选项,要怎么实现呢?谢谢大家!
      

  4.   

    你干嘛非得选择cbCustomColor或者把它删除ColorBox1.Items.Delete(0);
      

  5.   


    不用cbCustomColor的话会有其他的好多自动生成的颜色选项啊,我就想让它有红黄蓝三个色。
    ColorBox1.Items.Delete(0);后,虽然那custom项没了,但是点击第一项的话还会弹出自定义颜色的那个对话框
      

  6.   

    那你干嘛非用TColorBox,你用TComboBox自己写代码实现不就可以了
      

  7.   

    你这就是自己给自己找罪受,有那个custom怎么了,用户不是多个选择吗,也是方便客户啊
      

  8.   

    可以用 style := cbCustomColors 来去掉首项为自定义颜色框,见源码注释:
      TColorBoxStyles = (cbStandardColors, // first sixteen RGBI colors
                         cbExtendedColors, // four additional reserved colors
                         cbSystemColors,   // system managed/defined colors
                         cbIncludeNone,    // include clNone color, must be used with cbSystemColors
                         cbIncludeDefault, // include clDefault color, must be used with cbSystemColors
                         cbCustomColor,    // first color is customizable
                         cbPrettyNames,
                         cbCustomColors);  // All colors are custom colors