x11 Posted February 2, 2022 Share Posted February 2, 2022 Есть небольшой проект (пример), как использовать стандартный uniComboBox для выбора цвета с помощью готовых констант TAlphaColor. Но есть и проблема: не получается правильно установить и перерисовать цвет программно. Для воспроизведения выберите в списке какой-нибудь текст, а потом нажмите кнопку Установить (красный) цвет. Буду благодарен, если подскажите, что и где дописать/переписать, чтобы можно было и программно устанавливать цвет в TuniComboBox. UniGUI_ColorComboBox.zip Link to comment Share on other sites More sharing options...
x11 Posted February 2, 2022 Author Share Posted February 2, 2022 Уважаемый @Sherzod буду признателен, если Вы поможете, и если Вы сможете адаптировать код для мобильной версии TUnimComboBox. Заранее благодарен. Link to comment Share on other sites More sharing options...
Sherzod Posted February 3, 2022 Share Posted February 3, 2022 On 2/2/2022 at 2:30 PM, x11 said: Но есть и проблема: не получается правильно установить и перерисовать цвет программно. Для воспроизведения выберите в списке какой-нибудь текст, а потом нажмите кнопку Установить (красный) цвет. Буду благодарен, если подскажите, что и где дописать/переписать, чтобы можно было и программно устанавливать цвет в TuniComboBox. Добрый день, Попробуйте: procedure TMainForm.SelectColorInCombo(color: TColor); begin //программно выбрать цвет в списке //comboColor.ItemIndex := comboColor.items.IndexOfObject(Pointer(color)); comboColor.JSInterface.JSCall('setSelection', [comboColor.items.IndexOfObject(Pointer(color))]); end; 1 Link to comment Share on other sites More sharing options...
x11 Posted February 3, 2022 Author Share Posted February 3, 2022 так просто оказалось спасибо большое 1 Link to comment Share on other sites More sharing options...
Sherzod Posted February 4, 2022 Share Posted February 4, 2022 On 2/2/2022 at 2:32 PM, x11 said: Уважаемый @Sherzod буду признателен, если Вы поможете, и если Вы сможете адаптировать код для мобильной версии TUnimComboBox. Заранее благодарен. Нужно будет проанализировать... Но, не знаю, как быстро. 1 Link to comment Share on other sites More sharing options...
Sherzod Posted February 4, 2022 Share Posted February 4, 2022 On 2/2/2022 at 2:32 PM, x11 said: адаптировать код для мобильной версии TUnimComboBox. Пока такой прогресс: Также есть некоторые ошибки: 1 Link to comment Share on other sites More sharing options...
x11 Posted February 5, 2022 Author Share Posted February 5, 2022 супппппееер ждем Link to comment Share on other sites More sharing options...
Sherzod Posted February 5, 2022 Share Posted February 5, 2022 On 2/2/2022 at 2:32 PM, x11 said: адаптировать код для мобильной версии TUnimComboBox Или Вы будете использовать всегда такой вариант? 21 hours ago, Sherzod said: Link to comment Share on other sites More sharing options...
x11 Posted February 5, 2022 Author Share Posted February 5, 2022 Не совсем понял. Какой "такой"? Вариант, где есть ошибка? Link to comment Share on other sites More sharing options...
Sherzod Posted February 5, 2022 Share Posted February 5, 2022 6 minutes ago, x11 said: Вариант, где есть ошибка? Нет, вариант где picker=floated. Link to comment Share on other sites More sharing options...
Sherzod Posted February 5, 2022 Share Posted February 5, 2022 7 minutes ago, Sherzod said: Нет, вариант где picker=floated. Хотя это не важно. Link to comment Share on other sites More sharing options...
Sherzod Posted February 5, 2022 Share Posted February 5, 2022 On 2/2/2022 at 2:30 PM, x11 said: Но есть и проблема: не получается правильно установить и перерисовать цвет программно. Остаётся этот момент для мобильной версии... Link to comment Share on other sites More sharing options...
x11 Posted February 6, 2022 Author Share Posted February 6, 2022 20 hours ago, Sherzod said: picker=floated. да, именно так и должно быть, в классическом стиле Link to comment Share on other sites More sharing options...
Sherzod Posted February 6, 2022 Share Posted February 6, 2022 On 2/2/2022 at 2:32 PM, x11 said: адаптировать код для мобильной версии TUnimComboBox Добрый вечер, Попробуйте: ComboBox_Color_Mobile.rar 1 Link to comment Share on other sites More sharing options...
x11 Posted February 6, 2022 Author Share Posted February 6, 2022 Вроде работает. Завтра проверю в своем проекте. Спасибо большое! Link to comment Share on other sites More sharing options...
x11 Posted February 7, 2022 Author Share Posted February 7, 2022 21 hours ago, Sherzod said: Попробуйте Есть небольшая проблема. Нужно при создании/открытии формы программно выбрать цвет. Добавляю последнюю строку в процедуру procedure TMainmForm.FillColorsByMacro: ... ... UnimComboBox1.ItemIndex := UnimComboBox1.items.IndexOfObject(Pointer(clLime)); end; Цвет выбирается, но рисуется неправильно. Link to comment Share on other sites More sharing options...
x11 Posted February 7, 2022 Author Share Posted February 7, 2022 Если при открытии окна последней строкой поставить : UnimComboBox1.JSInterface.JSCode(#1'.setValue(Object.keys('#1'.colors)['+ UnimComboBox1.items.IndexOfObject(Pointer(clLime)).ToString() +']);') то появляется сообщение с текстом "-1" и цвет не clLime Link to comment Share on other sites More sharing options...
x11 Posted February 7, 2022 Author Share Posted February 7, 2022 Еще проблема. Заменил в вашем коде на константу clLime procedure TMainmForm.UnimButton1Click(Sender: TObject); begin UnimComboBox1.JSInterface.JSCode(#1'.setValue(Object.keys('#1'.colors)['+ UnimComboBox1.items.IndexOfObject(Pointer(clLime)).ToString() +']);') end; появляется сообщение с текстом "90", но цвет совсем не clLime Link to comment Share on other sites More sharing options...
x11 Posted February 7, 2022 Author Share Posted February 7, 2022 Сделал лог загрузки констант. Оказалось, что некоторые цвета загружаются дважды, т.к. в TAlphaColorRec = record их тоже по две Link to comment Share on other sites More sharing options...
Sherzod Posted February 8, 2022 Share Posted February 8, 2022 14 hours ago, x11 said: Оказалось, что некоторые цвета загружаются дважды, т.к. в TAlphaColorRec = record их тоже по две Здравствуйте, Тогда Вы можете попробовать создать свой массив констант. Link to comment Share on other sites More sharing options...
x11 Posted February 8, 2022 Author Share Posted February 8, 2022 а как быть с этим? On 2/7/2022 at 11:57 AM, x11 said: Цвет выбирается, но рисуется неправильно. Link to comment Share on other sites More sharing options...
x11 Posted February 8, 2022 Author Share Posted February 8, 2022 6 hours ago, Sherzod said: Тогда Вы можете попробовать создать свой массив констант. Можно и своих, но можно и добавить 2 строки кода для игнора дубликатов: 1. slColors.Duplicates := dupIgnore; // запретить дубликаты 2. if comboColor.Items.IndexOfObject(Pointer(rgb)) = -1 then // проверить, нет ли уже такого цвета в списке comboColor.Items.AddObject(AlphaColorVal.ToUpperInvariant, Pointer(rgb));// добавить имя цвета + значение в Objects Link to comment Share on other sites More sharing options...
x11 Posted February 8, 2022 Author Share Posted February 8, 2022 Еще одна небольшая проблемка. После нажатия на кнопку Clrear цвет остается. Link to comment Share on other sites More sharing options...
Sherzod Posted February 8, 2022 Share Posted February 8, 2022 7 minutes ago, x11 said: После нажатия на кнопку Clrear цвет остается. Программно можете "очистить"? Я имею в виду Вы можете обрабатывать событие. Link to comment Share on other sites More sharing options...
x11 Posted February 8, 2022 Author Share Posted February 8, 2022 3 minutes ago, Sherzod said: Я имею в виду Вы можете обрабатывать событие. Вы имеете в виду событие компоненты в браузере? Или событие на бэкэнде? Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now