denprox Опубликовано 15 марта, 2017 Опубликовано 15 марта, 2017 Доброго времени суток! Подскажите, каким образом можно изменить список у ColorComboBox ? Мне необходимо вместо стандартного набора, отобразить только необходимые цвета. Цитата
1 Модераторы Равиль Зарипов (ZuBy) Опубликовано 15 марта, 2017 Модераторы Опубликовано 15 марта, 2017 const aColorNames: array [0 .. 3] of string = ('Black', 'Red', 'Yellow', 'Green'); aColors: array [0 .. 3] of TAlphaColor = (TAlphaColorrec.Black, TAlphaColorrec.red, TAlphaColorrec.Yellow, TAlphaColorrec.Green); procedure TForm1.DoItemApplyStyleLookup(Sender: TObject); var ColorObj: TShape; begin if TListBoxItem(Sender).FindStyleResource<TShape>('color', ColorObj) then ColorObj.Fill.Color := aColors[TListBoxItem(Sender).Tag]; end; procedure TForm1.Button1Click(Sender: TObject); var aItem: TListBoxItem; I: Integer; begin ComboBox1.DropDownKind := TDropDownKind.Custom; // uses FMX.Pickers; for I := Low(aColorNames) to High(aColorNames) do begin aItem := TListBoxItem.Create(ComboBox1); aItem.Parent := ComboBox1; aItem.Text := aColorNames[I]; aItem.Width := aItem.DefaultSize.Width; aItem.Height := aItem.DefaultSize.Height; aItem.StyleLookup := 'colorlistboxitemstyle'; aItem.StylesData['color.Fill.Color'] := aColors[I]; aItem.OnApplyStyleLookup := DoItemApplyStyleLookup; aItem.Tag := I; end; end; как-то так denprox, enatechno и Rusland 3 Цитата
0 denprox Опубликовано 15 марта, 2017 Автор Опубликовано 15 марта, 2017 Спасибо большое!! Я был близок, подправил несколько строк, теперь все отлично! Равиль Зарипов (ZuBy) 1 Цитата
0 denprox Опубликовано 15 марта, 2017 Автор Опубликовано 15 марта, 2017 Еще небольшой вопрос! Ширину цвета через стиль только можно изменить ? На сколько я понимаю, это прописано в "colorlistboxitemstyle" ? Цитата
0 Модераторы Равиль Зарипов (ZuBy) Опубликовано 15 марта, 2017 Модераторы Опубликовано 15 марта, 2017 да через стиль поправить Цитата
0 denprox Опубликовано 15 марта, 2017 Автор Опубликовано 15 марта, 2017 6 минут назад, Равиль Зарипов (ZuBy) сказал: да через стиль поправить Предупреждаю, я только начал FMX пользовать, еще не освоился )) Как у ComboBox отредактировать стиль, ведь редактор стилей хоть и содержит contents, но про то что там будет рисоваться прямоугольник, он не знает ? Цитата
1 Модераторы Равиль Зарипов (ZuBy) Опубликовано 15 марта, 2017 Модераторы Опубликовано 15 марта, 2017 Внутри TComboBox используется TListBox Cамый простой способ кинуть на форму TListBox ПКМ Add TListBoxItem выбрать нужный стиль для Item (StyleLookup) ПКМ по Item Edit Custom Style меняем что нужно в стиле и сохраняем применяем новый стиль к Item denprox, enatechno и Rusland 3 Цитата
0 denprox Опубликовано 15 марта, 2017 Автор Опубликовано 15 марта, 2017 Спасибо!)) Помогло! Надо запомнить такой метод ) Цитата
0 krapotkin Опубликовано 15 марта, 2017 Опубликовано 15 марта, 2017 еще раз повторю, именно это готовым кодом можно найти в исходниках, FMX.colors Цитата
0 denprox Опубликовано 15 марта, 2017 Автор Опубликовано 15 марта, 2017 2 часа назад, krapotkin сказал: еще раз повторю, именно это готовым кодом можно найти в исходниках, FMX.colors Не совсем готовым, но почти Цитата
Вопрос
denprox
Доброго времени суток! Подскажите, каким образом можно изменить список у ColorComboBox ? Мне необходимо вместо стандартного набора, отобразить только необходимые цвета.
9 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.