Насколько мне известно, единственным решением этой проблемы является выпадающий список
.
Попробуйте эти шаги
- Установите свойство Style в выпадающем списке
csOwnerDrawFixed
- В событии OnDrawItem используйте методы стилей vcl для рисования элементов комбинированного списка.
Проверьте этот пример кода
uses
Vcl.Styles,
Vcl.Themes,
procedure TForm115.ComboBox1DrawItem(Control: TWinControl; Index: Integer;
const
ColorStates: array[Boolean] of TStyleColor = (scComboBoxDisabled, scComboBox);
FontColorStates: array[Boolean] of TStyleFont = (sfComboBoxItemDisabled, sfComboBoxItemNormal);
var
LStyles : TCustomStyleServices;
begin
LStyles :=StyleServices;
with Control as TComboBox do
begin
Canvas.Brush.Color := LStyles.GetStyleColor(ColorStates[Control.Enabled]);
Canvas.Font.Color := LStyles.GetStyleFontColor(FontColorStates[Control.Enabled]);
if odSelected in State then
Canvas.Brush.Color := LStyles.GetSystemColor(clHighlight);
Canvas.FillRect(Rect) ;
Canvas.TextOut(Rect.Left+2, Rect.Top, Items[Index]);
end;
end;
Для получения дополнительной информации вы можете проверить эту статью Vcl Styles and Owner Draw
. Также вы можете использовать модуль Vcl.Styles.OwnerDrawFix (часть проекта vcl-styles-utils ), который включает набор процедур рисования для таких компонентов, как TListBox, TComboBox и TListView. .