x11 Posted February 2, 2022 Share Posted February 2, 2022 Есть небольшой проект (пример), как использовать стандартный uniComboBox для выбора цвета с помощью готовых констант TAlphaColor. Но есть и проблема: не получается правильно установить и перерисовать цвет программно. Для воспроизведения выберите в списке какой-нибудь текст, а потом нажмите кнопку Установить (красный) цвет. Буду благодарен, если подскажите, что и где дописать/переписать, чтобы можно было и программно устанавливать цвет в TuniComboBox. UniGUI_ColorComboBox.zip Quote Link to comment Share on other sites More sharing options...
x11 Posted February 2, 2022 Author Share Posted February 2, 2022 Уважаемый @Sherzod буду признателен, если Вы поможете, и если Вы сможете адаптировать код для мобильной версии TUnimComboBox. Заранее благодарен. Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted February 3, 2022 Author Share Posted February 3, 2022 так просто оказалось спасибо большое 1 Quote 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 Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted February 5, 2022 Author Share Posted February 5, 2022 супппппееер ждем Quote 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: Quote Link to comment Share on other sites More sharing options...
x11 Posted February 5, 2022 Author Share Posted February 5, 2022 Не совсем понял. Какой "такой"? Вариант, где есть ошибка? Quote 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. Quote 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. Хотя это не важно. Quote 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: Но есть и проблема: не получается правильно установить и перерисовать цвет программно. Остаётся этот момент для мобильной версии... Quote 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. да, именно так и должно быть, в классическом стиле Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted February 6, 2022 Author Share Posted February 6, 2022 Вроде работает. Завтра проверю в своем проекте. Спасибо большое! Quote 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; Цвет выбирается, но рисуется неправильно. Quote 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 Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted February 7, 2022 Author Share Posted February 7, 2022 Сделал лог загрузки констант. Оказалось, что некоторые цвета загружаются дважды, т.к. в TAlphaColorRec = record их тоже по две Quote 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 их тоже по две Здравствуйте, Тогда Вы можете попробовать создать свой массив констант. Quote 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: Цвет выбирается, но рисуется неправильно. Quote 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 Quote Link to comment Share on other sites More sharing options...
x11 Posted February 8, 2022 Author Share Posted February 8, 2022 Еще одна небольшая проблемка. После нажатия на кнопку Clrear цвет остается. Quote 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 цвет остается. Программно можете "очистить"? Я имею в виду Вы можете обрабатывать событие. Quote 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: Я имею в виду Вы можете обрабатывать событие. Вы имеете в виду событие компоненты в браузере? Или событие на бэкэнде? 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.