我能够使用它的样式改变DBCombobox物品的颜色csOwnerDrawFixed类似
How do I draw the selected list-box item in a different color?选择DBListbox项目在不同的颜色和插入文本
procedure TForm1.DBComboBoxDrawItem(Control:TWinControl;
Index: Integer; Rect: TRect; State: TOwnerDrawState);
with (Control as TDBComboBox).Canvas do
begin
if odSelected in State then
Brush.Color := $00EACAB6;
Font.Color := clBlack;
FillRect(Rect);
TextOut(Rect.Left, Rect.Top, (Control as TDBComboBox).Items[Index]);
if odFocused In State then
begin
Brush.Color := (Control as TDBComboBox).Color;
DrawFocusRect(Rect);
end; {if}
end; {with}
end;
一般情况下,在默认情况下,我能够使用DBCombobox标准(风格:csDropdown)来选择项目,也可以输入文本在数据库Combobox
但我目前面临的问题是,当我改变DBCombobox的颜色(样式为csOwnerDrawFixed或csOwnerDrawVariable)。颜色被改变,但我无法在DBCombobox中输入文字。
有人能告诉我如何更改项目的颜色,并可以同时在DBCombobox中输入文本。谢谢 !
注:显示的颜色是不是默认的,但修改后的一个
你能告诉我们你有什么,我们可以重现吗? – Dsm
对不起,我的意思是代码明智的。我应该说清楚。 – Dsm
对于DBComboBox,帮助明确指出这是不可能的(即在这些模式下用户不能输入数据)。作为一个建议,你可以考虑使用一个普通的TCombobox,并通过实时绑定将其链接到数据源,但我明白这可能是一个重大转变。 – Dsm