Поиск сообщества
Показаны результаты для тегов 'inputquerysync'.
Найдено: 1 результат
-
Процедура редактирования одной записи в базе выглядит так: uses uDM, CRAccess, DASQLGenerator, FMX.Platform, FMX.DialogService, FMX.Utils; ... ... procedure TfmReference.actEditExecute(Sender: TObject); Var val: array of string; sTableName, cap: string; SyncService : IFMXDialogServiceSync; id: integer; begin SetLength(val, 1); val[0] := ListView1.Items[ListView1.Selected.Index].Objects.FindObjectT<TListItemText>('name').Text; id := StrToIntDef(ListView1.Items[ListView1.Selected.Index].Objects.FindObjectT<TListItemText>('id').Text, -1); cap := comboRefType.Items[comboRefType.ItemIndex]; sTableName := GetTableName; if TPlatformServices.Current.SupportsPlatformService(IFMXDialogServiceSync, IInterface(SyncService)) then if SyncService.InputQuerySync(cap, ['Изменить: '], val) then begin sqlInsert.sql.Text := Format('update %s set name = ' + QuotedStr(val[0]) + 'where id = ' + IntToStr(ID), [sTableName]); sqlInsert.Execute; end; end; Т.е. на форме ListView в режиме DynamicAppearance. Щёлкаем по строке, нажимает кнопку редактировать (actEditExecute). на Windows появляется окно ввода, но нет реакции на кнопку Отмена или Закрыть. При вводе значения и нажатии на OK, запись меняется. На Android 5 вообще не появляется диалоговое окно. Но actEditExecute выполняется. Например, если не выбрать строку списка и нажать Изменить, то появляется AV. Я так понимаю, что на Android SupportsPlatformService возвращает False. Тогда как реализовать InputBox или InputQuery на всех платформах или хотя бы на Windows и Android? Свое окно создавать и самому воспроизводить функционал InputBox или InputQuery?