• 0
Сергей Сергеев

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

Вопросы

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

8 ответов на этот вопрос

  • 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 по моему были.. а сейчас - тыкалки.. придется самому делать наверное календарь "в цвет"

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

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

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