Перейти к содержанию
Fire Monkey от А до Я
  • 0

DateEdit - как перекрасить DatePicker или запретить его открытие вообще?


Сергей Сергеев

Вопрос

Стиль Андроид Л. Все сине-зеленые квадратики в *.png файлах стиля и линии заменил на свои. В списке элементов стиля не т такого элемента как Picker. Откуда он берет эти панельки над днями месяца?

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
9 минут назад, Сергей Сергеев сказал:

Откуда он берет эти панельки над днями месяца?

Возможно это системный диалог.
Покажите на скриншоте, какие именно панельки вы имеете ввиду.

Ссылка на комментарий
  • 0

вот.. они зависят от стиля Дельфи, первый Андроид Dark Style, Второй Android L Light и откуда  цвет надписей, выделения.. В дарк стиле все тот же неубиваемый сине-голубой.

Screenshot_2019-02-26-14-25-57-073_com.embarcadero.DatePicker.png

Screenshot_2019-02-26-14-24-04-254_com.familydoctor.FD.png

Изменено пользователем Сергей Сергеев
Ссылка на комментарий
  • 0

Это нативные системные диалоги.
Если посмотреть код FMX.Pickers.Android то можно увидеть что этот диалог вызывается здесь:

function TAndroidDateTimePicker.GetNativeDatePicker: JBaseDateTimePicker;
var
  NativePickersFactory: JBasePickersFactory;
begin
  if FNativeDatePicker = nil then
  begin
    NativePickersFactory := GetPickersFactory;
    if NativePickersFactory <> nil then
    begin
      if FDateTimeChangedListener = nil then
        FDateTimeChangedListener := TDateTimeChangedListener.Create(DoDateChanged, DoShow, DoHide);
      FNativeDatePicker := NativePickersFactory.createDatePicker(MainActivity);
    end
    else
      raise EFeatureError.Create(SListPickerIsNotFound);
    FNativeDatePicker.setListener(FDateTimeChangedListener);
  end;
  Result := FNativeDatePicker;
end;

Где-то в свойствах проекта прописывается, какую цветовую схему должен использовать Андроид чтобы отображать эти диалоги.
Полагаю что это в одном из "манифесто-подобных" xml файлов.

Ссылка на комментарий
  • 0
31 минуту назад, Barbanel сказал:

де-то в свойствах проекта прописывается, какую цветовую схему должен использовать Андроид чтобы отображать эти диалоги.
Полагаю что это в одном из "манифесто-подобных" xml файлов.

проект один - из Sample DatePicker, разные стили цепляю ( т.е. загружаю файл *.style в StyleBook) Delphi - получаю разные цвета .. вряд ли при этом xml файл меняется.. неужели не предусмотрена возможность менять? и даже отключить это непонятно как.. разве что не использовать TDateEdit..

Ссылка на комментарий
  • 0
2 минуты назад, Сергей Сергеев сказал:

проект один - из Sample DatePicker, разные стили цепляю ( т.е. загружаю файл *.style в StyleBook) Delphi - получаю разные цвета .. вряд ли при этом xml файл меняется.. неужели не предусмотрена возможность менять? и даже отключить это непонятно как.. разве что не использовать TDateEdit..

Цветовая схема прописывается в файл styles-v21.xml самой средой.
Подозреваю что туда она попадает из style-файла. Если открыть style в текстовом редакторе то можно найти секцию TStyleDescription. В ней прописаны цветовые схемы в разделе PlatformTarget

Больше упоминаний о стиле я нигде не нашел.
Могу конечно же ошибаться, поправьте меня.

Ссылка на комментарий
  • 0
33 минуты назад, Barbanel сказал:

Подозреваю что туда она попадает из style-файла.

Вот.. правда в v21.xml ничего не нашел, как и в .style, скорее всего отрисовка както завязана на, например, условно стиль "правый угол TaskBar" ( чтоб никто не догадался). И еще меня смущает нативность этих элементов, коллеги утверждают, что в разных Версиях они разные, а тут одинаковые..

пс. Не нашел файл FMX.Pickers.Android - где они?

Ссылка на комментарий
  • 0
1 минуту назад, Сергей Сергеев сказал:

Не нашел файл FMX.Pickers.Android - где они?

C:\Program Files (x86)\Embarcadero\Studio\20.0\source\fmx

4 минуты назад, Сергей Сергеев сказал:

И еще меня смущает нативность этих элементов, коллеги утверждают, что в разных Версиях они разные, а тут одинаковые..

Я смутно помню что раньше (в Берлине например) эти диалоги выглядели иначе. Потом эмбаркадеро помоему стала вызывать более современный диалог.

Специально откопал древнюю версию нашей программы, посмотрел.
Левый девайс - Андроид 6, сборка на текущей версии студии, диалог современный.
Правый девайс, Андроид 7, старая версия приложения, диалог тоже чутка древний.
Стиль диалога 100% не изменялся вручную.

Вывод: они разные, но в разных версиях студии а не андроида, независимо от стиля.

IMG_20190226_153504.jpg

Ссылка на комментарий
  • 0
1 час назад, Barbanel сказал:

но в разных версиях студии а не андроида,

точно, компиляция в 10.2 и 10.3  дают разный вид DatePicker. От стиля Delphi зависит цвет вот эти вот панелек ( темные, светлые) - собственно и вопрос - как поменять.. т.е. похоже не нативный, хотя может от версии SDK андроида зависит..

пс. все таки одинаковый - "современный", SDK 22 и SDK 28.. хм.. 

а крутилки помню, Seatle или Berlin по моему были.. а сейчас - тыкалки.. придется самому делать наверное календарь "в цвет"

Изменено пользователем Сергей Сергеев
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...