如何在Delphi中的csExDropDownList组合框中添加标题/文本?

时间:2019-01-11 09:08:29

标签: delphi combobox label

我当前正在尝试创建一个带有“标题”的组合框。标题是指您尚未单击或选择选项时看到的文本。

在我添加csExDropDownList之前,它可以正常工作,但我希望它是ReadOnly。现在,当我编辑Text属性时,它将立即被删除。我考虑过在组合框前面使用TLabel并在选择下拉菜单时使它消失,但是TLabel始终在后台。我也尝试过使用TStaticText组件,但是在组合框的前面留下了不同的彩色背景,看上去很糟糕。

如果我无法用文字解释我要编辑/想要添加的文本,这就是我的意思:

enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法。我添加了索引为0的第三个下拉列表。现在在属性中,将ItemIndex设置为0,这表示它的显示方式类似于Text属性。当我与QuickSort或InsertSort交互时,我会删除索引0。

我的代码如下:

procedure TSorterForm.AlgorithmCbxChange(Sender: TObject);
begin
     if (AlgorithmCbx.Text <> 'Choose Algorithm...') and not IsAlgorithmSelected then begin
       AlgorithmCbx.Items.Delete(0);
       IsAlgorithmSelected:= true;
     end;
end;

显然不完美,所以如果您能告诉我如何进行改进,那就太好了。