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

Ошибка InputQuery на Windows


x11

Вопрос

Мультиплатформенное приложение. Delphi Tokyo.

указываю 2 параметра для VAL и передаю это в TDialogService.InputQuery

 

procedure TfmMain.Send(id: integer);
Var
  val: array of string;
  cap: string;
begin
// запускаем диалог ввода имени

  SetLength(val, 2);
  val[0] := VarToStr(qCalls.Lookup('ID', id, 'name'));
  val[1] := id.ToString;
  cap    := 'Введите имя';

  TDialogService.InputQuery(cap, ['Имя клиента: '], Val, InputDialogHandlerGetShotName);
end;

 

В итоге, в недрах TDialogService.InputQuery получаю исключение:

Цитата

Project raised exception class EArgumentOutOfRangeException with message 'Argument out of range'.

 

На андроиде ошибки нет.

 

Screenshot_4.png

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

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

  • 0

Хоть в хелпе и написано

Цитата

The length of AValues must be greater than or equal to the length of APrompts

под виндой размерности массивов должны совпадать. Посмотрите FMX.DialogHelper.TDialogBuilder.InputQuery

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

под виндой размерности массивов должны совпадать.

Под виндой, если передаю,

SetLength(val, 1);

то ошибки нет.

 

Это баг, получается?

Где-то в справке написано, что под виндой нельзя передавать массив, где больше одного элемента?

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

Это баг, получается?

Похоже на то.

2 минуты назад, x11 сказал:

Где-то в справке написано, что под виндой нельзя передавать массив, где больше одного элемента?

Нет, это видно из исходников, и не больше одного элемента а размерности параметров APrompts и AValues должны совпадать. От размерности APrompts зависит количество полей ввода в диалоге.

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

Это уже не моя забота, это уже забора разработчиков FMX.

Не, ну если Вас не заботит то, что Ваше приложение будет выдавать ошибку под виндой - то конечно, пусть сами разбираются

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

Заботит, конечно.

Но приложение для Андроид.

Для чего тогда винда? Просто некоторые функции можно отлаживать на винде, т.к. это значительно удобней и быстрей.

Запуск и отладка на Андроиде - это долго.

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

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

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

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

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

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

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

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

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

×
×
  • Создать...