Jump to content

x11

uniGUI Subscriber
  • Posts

    2822
  • Joined

  • Last visited

  • Days Won

    13

Everything posted by x11

  1. Проблема еще в том, что программно тоже цвет не меняется comboColor.ItemIndex := 5; Т.е. само название подставляется правильно, текс, а цвет прямоугольника остается старый.
  2. Вы слишком хорошего мнения обо мне 😁 Дело в том, что я, как и многие здесь, не знаю ExtJS. Поэтому даже не представляю что там писать. И как применить.
  3. Еще вопрос. Когда нажимаю на станедартную кнопку Clear у комбобокса, то цвет остается
  4. И в нем можно применить все то, что сделано в этом вашем примере? Но в мобильной версии отсутствует событие afterrender. Подскажите, пожалуйста, как переделать мобильную версию с учетом вашего примера? Спасибо.
  5. этот пример можно как-то адаптировать для мобильной версии комбобокса? там же другие свойства и другие события. Я имею ввиду unimSelect.
  6. Чтобы вручную не заполнять свойство ColorPicker.beforeInit у кнопки TuniColorButton. Вот так можно заполнить программно: btnColor: TuniColorButton; slColors: TStringList; ... ... function TfrdEditObject.ColorToStringHex(Color: TColor): string; begin // цвет в строку 'FF01FF' Result := IntToHex(GetRValue(Color), 2) + IntToHex(GetGValue(Color), 2) + IntToHex(GetBValue(Color), 2) ; end; procedure TfrdEditObject.FillColorsColorButton; Var js, jsList: string; begin // наполнить выпадающий список стандартными Delphi-цветами TAlphaColor slColors.Clear; slColors.Add(QuotedStr('FFFFFF'));// белый цвет, считать, что цвет не выбран System.UIConsts.GetAlphaColorValues(FillColorsPicker); js := 'function ColorPicker.beforeInit(sender, config)' + '{' + 'sender.colors=['; for var i := 0 to pred(slColors.Count) do if jsList.IsEmpty then jsList := slColors[i] else jsList := jsList + ',' + slColors[i] + sLineBreak; js := js + jsList + '];'+ 'sender.width=400;' + 'sender.height=430;' + '}'; btnColor.ClientEvents.UniEvents.Values['ColorPicker.beforeInit'] := js; end; procedure TfrdEditObject.FillColorsPicker(const AlphaColorVal: String); var Color: TColor; AColor: TAlphaColor; begin // на входе - названия цветов из гаммы https://docwiki.embarcadero.com/Libraries/Sydney/en/System.UITypes.TAlphaColorRec // нужно конвертировать в RGB AColor := StringToAlphaColor(AlphaColorVal); Color := TAlphaColorRec.ColorToRGB(AColor); slColors.Add(QuotedStr(ColorToStringHex(Color))); end;
  7. Уже все норм. Я перепутал компоненту. Я подумал, что Вы дали пример для комбобокса. Просто комбобокс есть и в десктопе, и в мобильной версии.
  8. я понял, это для кнопки ок, а как быть для мобильной версии? там же нет такой кнопки?
  9. ошибка JS Error: Cannot read properties of undefined (reading 'setStyle')
  10. А что, в мобильной версии uniGUI нет ни единой компоненты для выбора цвета? Или я просто не нашел?
  11. Вот так можно увеличить кнопки: .x-color-picker-item{ width: 25px; height: 25px; } .x-color-picker-item-inner{ height: 20px; } Может, знает кто, как отобразить на кнопке уже выбранный цвет? В том числе и как программно это сделать? Спасибо.
  12. Использовать пример кода function ColorPicker.beforeInit(sender, config) { sender.colors=[ '000000', 'FFFAFA', 'FFFAF0', 'FFF0F5', 'FDF5E6', 'FFFFF0', 'FFF8DC', 'F5F5DC', 'FAEBD7', 'F5DEB3', 'F0F8FF', 'F8F8FF', 'E6E6FA', 'FFF5EE', 'FFFFE0', 'FFEFD5', 'FFDEAD', 'FFE4B5', 'DEB887', 'F0FFFF', 'F5FFFA', 'F0FFF0', 'FAF0E6', 'FFFACD', 'FFEBCD', 'FFE4C4', 'FFDAB9', 'D2B48C', 'FFFF00', 'FF8C00', 'FF0000', '8B0000', '800000', 'CD5C5C', 'FA8072', 'FF7F50', 'FFD700', 'FF6347', 'DC143C', 'A52A2A', 'D2691E', 'F4A460', 'FFA07A', 'F08080', 'FFA500', 'FF4500', 'B22222', '8B4513', 'A0522D', 'CD853F', 'E9967A', 'BC8F8F', 'EEE8AA', 'FAFAD2', '808000', '228B22', 'ADFF2F', '7FFF00', '90EE90', '7FFFD4', '2E8B57', 'DAA520', 'F0E68C', '6B8E23', '008000', '9ACD32', '7CFC00', '98FB98', '66CDAA', '3CB371', 'B8860B', 'BDB76B', '556B2F', '006400', '32CD32', '00FF00', '00FF7F', '00FA9A', '8FBC8F', '20B2AA', 'AFEEEE', 'E0FFFF', 'ADD8E6', '87CEFA', '6495ED', '00008B', '4B0082', '48D1CC', '40E0D0', '00FFFF', '00FFFF', 'B0E0E6', '87CEEB', '4169E1', '0000CD', '191970', '00CED1', '5F9EA0', '008B8B', '008080', '00BFFF', '1E90FF', '0000FF', '000080', '9400D3', '9932CC', 'FF00FF', 'FF00FF', '8B008B', 'C71585', 'DB7093', '8A2BE2', 'BA55D3', '9370DB', '800080', 'FF1493', 'FFB6C1', 'EE82EE', 'DA70D6', 'DDA0DD', 'D8BFD8', 'FF69B4', 'FFC0CB', 'B0C4DE', '7B68EE', '778899', 'FFFFFF', 'D3D3D3', '808080', '4682B4', '6A5ACD', '708090', 'F5F5F5', 'C0C0C0', '696969', 'FFE4E1', '483D8B', '2F4F4F', 'DCDCDC', 'A9A9A9']; sender.width=300; sender.height=200; } Разработчики могли бы добавить это в стандартные примеры uniGUI, т.к. там я такого не нашел.
  13. Подскажите, как нарисовать цветной прямоугольник в комбобоксе опираясь на вот этот пример? Значение цвета указано в скобках. Или даже разукрасить фон строк комбобокса. Цвета в кобобокс зщагружаются стандартным способом: comboColor3.Items.AddObject(Format('%s (%x)', [s, StringToAlphaColor(s)]), Pointer(StringToAlphaColor(s)));
  14. Подскажите, а это нормально, что разделитель указан, как точка с запятой, а в браузере запятая?
  15. а в мобильной версии какой аналог?
  16. А в мобильной версии какой аналог?
  17. When will a full-fledged color choice appear in the framework in desktop and mobile versions?
  18. На форме есть extUniColorCombobox (comboColor2) из которого можно выбрать кастомный любой цвет + стандартный uniCombobox (comboColor3) из которого можно выбрать именованный стандартный цвет (из Delphi-набора TAphaColorRec) procedure TfrdEditObject.FillColorsCombobox; begin // наполнить стандартными цветами список, например, при старте формы/фрейма comboColor3.Clear; System.UIConsts.GetAlphaColorValues(FillColorsCombo); end; procedure TfrdEditObject.FillColorsCombo(const S: String); begin // см справку // https://docwiki.embarcadero.com/Libraries/Sydney/en/System.UITypes.TAlphaColorRec // https://docwiki.embarcadero.com/Libraries/Sydney/en/System.UIConsts.GetAlphaColorValues comboColor3.Items.AddObject(Format('%s (%x)', [s, StringToAlphaColor(s)]), Pointer(StringToAlphaColor(s))); end; procedure TfrdEditObject.comboColor3Select(Sender: TObject); begin //в comboColor3 выбираем стандартный именованный цвет // и присваиваем выбранное значение кастомному комбобоксу comboColor2, чтобы было видно визуально, что выбрано comboColor2.AColor := integer(comboColor3.Items.Objects[comboColor3.ItemIndex]); end; // вызвать процедуру наполнения comboColor3 ... ... procedure TfrdEditObject.SetColor(color: TColor); Var AlphaColor: TAlphaColor; AColor: single; AStr: string; begin // установить прозрачность if color = 0 then Acolor := 0// если цвет не был выбран, то полностью прозрачный else Acolor := 1;// если цвет был выбран, то непрозрачный //конвертировать в AlphaColor из RGB, т.к. в базе храниться только RGB AlphaColor := TAlphaColorF.Create(TColorRec(color).R/255, TColorRec(color).G/255, TColorRec(color).B/255, AColor).ToAlphaColor; comboColor2.AColor := AlphaColor; // есть выбранный цвет начинается с #, а не с буквы, то такого имени у цвета нет и его нуждно добавить, чтобы // пользователь видел, что что-то выбрано AStr := AlphaColorToString(AlphaColor); if AStr.Chars[0] = '#' then comboColor3.Items.AddObject(Format('%s (%x)', [AStr, StringToAlphaColor(AStr)]), Pointer(StringToAlphaColor(AStr))); comboColor3.ItemIndex := comboColor3.items.IndexOfObject(Pointer(comboColor2.AColor)); end; Вот такой костыль получился. Если поможете это все связать в одну визуальную компоненту, будет все очень полезно. Спасибо.
  19. а подскаждите еще, пожалуйста, как разукрасить каждую строку комбобокса в свой цвет? Цвет указан в скобках.... вот я наполнил обычный uniCombobox ... comboColor3.Clear; System.UIConsts.GetAlphaColorValues(FillColorsCombo); end; procedure TfrdEditObject.FillColorsCombo(const S: String); begin comboColor3.Items.Add(Format('%s (%x)', [s, StringToAlphaColor(s)])); end; Я понимаю., что как-то через событие AfterRender, но не знаю как. Спасибо.
  20. Подскажите, пожалуйста, а как вы сделали цикл по TAlphaColorRec, чтобы вставить их в свойство AColor? Спасибо.
  21. а как исправить эту ошибку? '$anc0e5ea' is not a valid integer value. я так понял, это когда прозрачность меняешь
×
×
  • Create New...