x11 Posted July 15, 2021 Share Posted July 15, 2021 Работает. Спасибо огромное! Осталось совсем немного. А как теперь программно назначить цвет выпадающему списку? Т.е. как при открытии формы из TColor выбрать программно цвет в UniComboBox1? function TColorToHex(Color : TColor) : string; begin Result := IntToHex(GetRValue(Color), 2) + IntToHex(GetGValue(Color), 2) + IntToHex(GetBValue(Color), 2) ; end; как эту строку теперь передать в ColorCombobox? 1 Quote Link to comment Share on other sites More sharing options...
Sherzod Posted July 15, 2021 Share Posted July 15, 2021 26 minutes ago, x11 said: А как теперь программно назначить цвет выпадающему списку? Т.е. как при открытии формы из TColor выбрать программно цвет в UniComboBox1?. Да. В таком случае, нужно также держать массив "colors" на стороне сервера, т.е. этот массив: sender.colors = { NULL: '#ffffff00', ALICEBLUE: '#F0F8FF', ANTIQUEWHITE: '#FAEBD7', AQUA: '#00FFFF', AQUAMARINE: '#7FFFD4', ... Quote Link to comment Share on other sites More sharing options...
x11 Posted July 15, 2021 Share Posted July 15, 2021 это ломает всю идею Quote Link to comment Share on other sites More sharing options...
Sherzod Posted July 15, 2021 Share Posted July 15, 2021 13 minutes ago, x11 said: это ломает всю идею Что нибудь придумаем. Quote Link to comment Share on other sites More sharing options...
x11 Posted July 15, 2021 Share Posted July 15, 2021 А можно ли не держать постоянный js-массив, sender.colors = { ALICEBLUE: '#F0F8FF', ANTIQUEWHITE: '#FAEBD7', AQUA: '#00FFFF', ... ... а формировать его и потом передавать его при создании фрейма? Тогда на бэкэнде можно проверить, есть ли в массиве цветов нужное значение и, если нету, то добавить еще одно значение и уже потом отправить массив в компоненту, в браузер. Вы мне как-то давали пример, как отправлять список колонок для мобильной сетки в браузер: procedure SetFieldsToJS(dbg: TUnimDBListGrid); var cols: string; begin // отправить в JS имена столбцов для xtemplate for var i := 0 to pred(dbg.Columns.Count) do Cols := Cols + '"' + UpperCase(dbg.Columns[I].FieldName) + '",'; Cols := '[' + Cols + ']'; dbg.JSInterface.JSAssign('fieldsNames', [dbg.JSInterface.JSStatement(Cols)]);// в бразуер отправятся имена в UPPERCASE // http://forums.unigui.com/index.php?/topic/15793-named-params-in-xtemplate-tunimdblistgrid/&tab=comments#comment-86752 end; вот по такому примеру бы сделать... а? Quote Link to comment Share on other sites More sharing options...
x11 Posted July 15, 2021 Share Posted July 15, 2021 Еще один вариант. Более оптимизированный. Оставить массив как есть, т.е. как Вы и сделали. Но добавить только одно новое свойство (переменную) и в эту JS-переменную передавать значение цвета при создании фрейма. А уже в JS-коде, как и раньше, проверять значение (НЕ имя, а именно значение) и если такого цвета нет в готовом массиве, то брать это значение из этой дополнительной переменной. Т.е. поменять вот эту часть кода: sender.getHexa = (color) => { return sender.colors[color.toUpperCase()] ? sender.colors[color.toUpperCase()] : 'color not found'; }; и в ней использовать дополнительную переменную. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted July 15, 2021 Share Posted July 15, 2021 7 minutes ago, x11 said: а формировать его и потом передавать его при создании фрейма? Тогда на бэкэнде можно проверить, есть ли в массиве цветов нужное значение и, если нету, то добавить еще одно значение и уже потом отправить массив в компоненту, в браузер. Я это и имел в виду. Quote Link to comment Share on other sites More sharing options...
x11 Posted July 15, 2021 Share Posted July 15, 2021 смотрите, как это работает в других компонентах // добавить кастомный нестандартный цвет в список colorCat.Properties.CustomColors.AddColor(DataSet1.FieldByName('color').Value, DataSet1.FieldByName('color').Value); // указать, выбрать цвет программно colorCat.EditValue := DataSet1.FieldByName('color').Value; Quote Link to comment Share on other sites More sharing options...
Sherzod Posted July 15, 2021 Share Posted July 15, 2021 2 minutes ago, x11 said: Что за компонента? Quote Link to comment Share on other sites More sharing options...
x11 Posted July 15, 2021 Share Posted July 15, 2021 TcxColorComboBox из DevExpress Quote Link to comment Share on other sites More sharing options...
Sherzod Posted July 15, 2021 Share Posted July 15, 2021 14 minutes ago, x11 said: TcxColorComboBox из DevExpress OK. Quote Link to comment Share on other sites More sharing options...
x11 Posted July 20, 2021 Share Posted July 20, 2021 On 7/15/2021 at 2:37 PM, Sherzod said: Что нибудь придумаем. ? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted July 20, 2021 Share Posted July 20, 2021 35 minutes ago, x11 said: On 7/15/2021 at 4:37 PM, Sherzod said: Что нибудь придумаем. ? Простите, быстро не получается. Quote Link to comment Share on other sites More sharing options...
x11 Posted July 21, 2021 Share Posted July 21, 2021 Но мы будем очень ждать нормальных полноценных компонент для выбора цвета. Спасибо 1 Quote Link to comment Share on other sites More sharing options...
x11 Posted November 11, 2021 Share Posted November 11, 2021 On 7/14/2021 at 12:34 PM, Sherzod said: Я чуть изменил код: этот пример можно как-то адаптировать для мобильной версии комбобокса? там же другие свойства и другие события. Я имею ввиду unimSelect. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 11, 2021 Share Posted November 11, 2021 43 minutes ago, x11 said: этот пример можно как-то адаптировать для мобильной версии комбобокса? там же другие свойства и другие события. Я имею ввиду unimSelect. Я постараюсь проанализировать. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 11, 2021 Share Posted November 11, 2021 1 hour ago, x11 said: Я имею ввиду unimSelect. Хотя компонент доступен и для мобильной версии - UnimComboBox. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 12, 2021 Share Posted November 12, 2021 15 hours ago, Sherzod said: для мобильной версии - UnimComboBox. И в нем можно применить все то, что сделано в этом вашем примере? Но в мобильной версии отсутствует событие afterrender. Подскажите, пожалуйста, как переделать мобильную версию с учетом вашего примера? Спасибо. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 12, 2021 Share Posted November 12, 2021 Еще вопрос. Когда нажимаю на станедартную кнопку Clear у комбобокса, то цвет остается Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 12, 2021 Share Posted November 12, 2021 37 minutes ago, x11 said: Еще вопрос. Когда нажимаю на станедартную кнопку Clear у комбобокса, то цвет остается Можно добавить свою логику. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 12, 2021 Share Posted November 12, 2021 3 hours ago, Sherzod said: Можно добавить свою логику. Вы слишком хорошего мнения обо мне 😁 Дело в том, что я, как и многие здесь, не знаю ExtJS. Поэтому даже не представляю что там писать. И как применить. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 12, 2021 Share Posted November 12, 2021 Проблема еще в том, что программно тоже цвет не меняется comboColor.ItemIndex := 5; Т.е. само название подставляется правильно, текс, а цвет прямоугольника остается старый. Quote Link to comment Share on other sites More sharing options...
x11 Posted November 12, 2021 Share Posted November 12, 2021 On 7/14/2021 at 12:34 PM, Sherzod said: Я чуть изменил код: Как это все применить (переделать) для UnimComboBox? Спасибо. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted November 12, 2021 Share Posted November 12, 2021 13 minutes ago, x11 said: Как это все применить (переделать) для UnimComboBox? 21 hours ago, Sherzod said: Я постараюсь проанализировать. 1 Quote Link to comment Share on other sites More sharing options...
kazakoff Posted December 13, 2021 Share Posted December 13, 2021 Добрый день, таки я и не понял как сделать что-бы был прямоугольник с цветом? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.