Использовать разные цвета для каждого элемента TComboBoxDelphi , Компоненты и Классы , СпискиИспользовать разные цвета для каждого элемента TComboBox
Оформил: DeeCo procedure ComboColor(C: TWinControl; I : Integer; R : TRect; EColor, OColor, FColor : TColor); begin with (C as TCombobox) do //TCombobox oder T.....box begin if Odd(I) then Canvas.Brush.color := OColor else Canvas.Brush.color := EColor; Canvas.FillRect(R); Canvas.Font.Color := FColor; Canvas.TextOut(R.Left,R.Top,Items[I]); end; end; procedure TForm1.ComboBox1DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); begin ComboColor(Control, Index, Rect, clInfoBk, clWhite, clBlack); end; //Combobox.Style := csOwnerDrawFixed; Перевод контента на русский язык: Код, который я предоставил, - это кастомное реализация для рисования элементов в компоненте TComboBox. Он позволяет использовать разные цвета для каждого элемента в комбобоксе. Вот как это работает:
Вот пример кода, который демонстрирует, как можно модифицировать эту процедуру для того, чтобы каждый элемент в комбобоксе имел разный цвет:
В этом коде цвет каждого элемента определяется его индексом в комбобоксе. Например, элементы с индексами, кратными 4, имеют синий фон и белый текст, а элементы с индексами, кратными 2, но не 4, имеют зеленый фон и желтый текст. Если элемент не подходит этому шаблону (т.е., его индекс равен 0), он имеет стандартный цвет. В статье описывается способ настройки цвета элементов TComboBox в Delphi, используя процедуру ComboColor для изменения цвета текста и фона каждого элемента. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |