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; как-то так Rusland, enatechno и denprox 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 enatechno, Rusland и denprox 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 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.