x11 Опубликовано 1 февраля, 2018 Поделиться Опубликовано 1 февраля, 2018 Мультиплатформенное приложение. 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'. На андроиде ошибки нет. Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 1 февраля, 2018 Поделиться Опубликовано 1 февраля, 2018 Хоть в хелпе и написано Цитата The length of AValues must be greater than or equal to the length of APrompts под виндой размерности массивов должны совпадать. Посмотрите FMX.DialogHelper.TDialogBuilder.InputQuery Цитата Ссылка на комментарий
0 x11 Опубликовано 2 февраля, 2018 Автор Поделиться Опубликовано 2 февраля, 2018 11 час назад, dnekrasov сказал: под виндой размерности массивов должны совпадать. Под виндой, если передаю, SetLength(val, 1); то ошибки нет. Это баг, получается? Где-то в справке написано, что под виндой нельзя передавать массив, где больше одного элемента? Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 2 февраля, 2018 Поделиться Опубликовано 2 февраля, 2018 1 минуту назад, x11 сказал: Это баг, получается? Похоже на то. 2 минуты назад, x11 сказал: Где-то в справке написано, что под виндой нельзя передавать массив, где больше одного элемента? Нет, это видно из исходников, и не больше одного элемента а размерности параметров APrompts и AValues должны совпадать. От размерности APrompts зависит количество полей ввода в диалоге. Цитата Ссылка на комментарий
0 x11 Опубликовано 2 февраля, 2018 Автор Поделиться Опубликовано 2 февраля, 2018 2 часа назад, dnekrasov сказал: а размерности параметров APrompts и AValues должны совпадать Это уже не моя забота, это уже забора разработчиков FMX. Цитата Ссылка на комментарий
0 krapotkin Опубликовано 2 февраля, 2018 Поделиться Опубликовано 2 февраля, 2018 фигасе вот вам 10 вопросов и 12 ответов, сами разбирайтесь, что с ними делать ))) Цитата Ссылка на комментарий
0 dnekrasov Опубликовано 2 февраля, 2018 Поделиться Опубликовано 2 февраля, 2018 2 часа назад, x11 сказал: Это уже не моя забота, это уже забора разработчиков FMX. Не, ну если Вас не заботит то, что Ваше приложение будет выдавать ошибку под виндой - то конечно, пусть сами разбираются krapotkin 1 Цитата Ссылка на комментарий
0 x11 Опубликовано 2 февраля, 2018 Автор Поделиться Опубликовано 2 февраля, 2018 Заботит, конечно. Но приложение для Андроид. Для чего тогда винда? Просто некоторые функции можно отлаживать на винде, т.к. это значительно удобней и быстрей. Запуск и отладка на Андроиде - это долго. Цитата Ссылка на комментарий
Вопрос
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 получаю исключение:
На андроиде ошибки нет.
Ссылка на комментарий
7 ответов на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.