x11 Posted June 24, 2020 Share Posted June 24, 2020 1. Есть небольшое неудобство - виртуальная клавиатура появляется и скрывается очень быстро, в течение полсекунды, что вызывает неприятный визуальный эффект моргания экрана. На форме логина есть TUnimSelect для выбора пользователя, и TunimEdit для ввода пароля. Пользователь выбирает что-то в TUnimSelect и вводит пароль в TunimEdit. Под TunimEdit находится кнопка ОК. Чтобы нажать ОК, нужно скрыть клавиатуру, т.к. кнопка ОК не видна, пока клавиатура на экране. И так... пользователь ввел пароль, скрыл клавиатуру и нажимает ОК, при этом TunimEdit всё-таки находится в фокусе. Проблема в том, что когда закрывается форма логина и появляется главная форма приложения, то виртуальная клавиатура на полсекунды снова появляется и исчезает. Я добавил вот такой код в событие нажатия на кнопку ОК btnOK.WebFocus; edPass.ReadOnly := true; Всё равно это не помогло. Link to comment Share on other sites More sharing options...
Sherzod Posted June 24, 2020 Share Posted June 24, 2020 1 hour ago, x11 said: Всё равно это не помогло. Есть ли у Вас, небольшой тестовый случай для этого? Link to comment Share on other sites More sharing options...
x11 Posted June 24, 2020 Author Share Posted June 24, 2020 Да там всё просто. 1. При старте формы логина будет сфокусирован элемент ввода пароля, но при этом клавиатура видна не будет: procedure TUnimLoginForm2.UnimLoginFormCreate(Sender: TObject); begin UnimEdit1.SetFocus; end; 2. Сразу после закрытия формы логина на главной форме появится на короткие промежуток времени виртуальная клавиатура. procedure TUnimLoginForm2.UnimButton1Click(Sender: TObject); begin UnimEdit1.ReadOnly := True; ModalResult := mrOK; end; Просто запустите, не надо ничего вводить, нажмите на кнопку UnimButton1. Или сделайте так: введите что-то в UnimEdit1, потом скройте клавиатуру, а потом нажмите кнопку. UniGUI_Touch_Scroll.zip Link to comment Share on other sites More sharing options...
Sherzod Posted June 24, 2020 Share Posted June 24, 2020 Ok, я проверю. Link to comment Share on other sites More sharing options...
Sherzod Posted June 24, 2020 Share Posted June 24, 2020 16 minutes ago, x11 said: Или сделайте так: введите что-то в UnimEdit1, потом скройте клавиатуру, а потом нажмите кнопку. А если попробовать такой подход? UnimButton1 -> function tap(sender, e, eOpts) { Ext.get(Ext.Element.getActiveElement()).blur(); } 1 Link to comment Share on other sites More sharing options...
x11 Posted June 24, 2020 Author Share Posted June 24, 2020 спасибо, помогло 1 Link to comment Share on other sites More sharing options...
x11 Posted October 15, 2020 Author Share Posted October 15, 2020 Похожий вопрос с TUnimDBLookupComboBox. Пользователь что-то набирает в строке и выбирает. Но после выбора значения в unimDBLookupComboBox, не закрывается виртуальная клавиатура смартфона. procedure TfmmMain.selCMDGetKeyValue(const Value: string; var KeyValue: Variant); begin if Value = ... then begin что-то делаем selCMD.Text := '';// очищаем строку ввода selCMD.JSInterface.JSAddListener('---', '---');// как скрыть клавиатуру? end; end; что прописать вместо --- ? Спасибо. P.S. в OnKeyValue так и не добавили параметр sender. Link to comment Share on other sites More sharing options...
Sherzod Posted October 15, 2020 Share Posted October 15, 2020 12 minutes ago, x11 said: selCMD.JSInterface.JSAddListener('---', '---');// как скрыть клавиатуру? А если попробовать так?: selCMD.JSInterface.JSCode('Ext.get(Ext.Element.getActiveElement()).blur();'); 1 Link to comment Share on other sites More sharing options...
x11 Posted October 15, 2020 Author Share Posted October 15, 2020 Спасибо большое. Работает. 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now