Jump to content

Recommended Posts

Posted

1. Есть небольшое неудобство - виртуальная клавиатура появляется и скрывается очень быстро, в течение полсекунды, что вызывает неприятный визуальный эффект моргания экрана.

На форме логина есть TUnimSelect для выбора пользователя, и TunimEdit для ввода пароля. Пользователь выбирает что-то в TUnimSelect и вводит пароль в TunimEdit. Под TunimEdit находится кнопка ОК. Чтобы нажать ОК, нужно скрыть клавиатуру, т.к. кнопка ОК не видна, пока клавиатура на экране.

И так... пользователь ввел пароль, скрыл клавиатуру и нажимает ОК, при этом TunimEdit всё-таки находится в фокусе.

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

 

Я добавил вот такой код в событие нажатия на кнопку ОК

      btnOK.WebFocus;
      edPass.ReadOnly := true;

Всё равно это не помогло.

 

Posted
1 hour ago, x11 said:

Всё равно это не помогло.

Есть ли у Вас, небольшой тестовый случай для этого?

Posted

Да там всё просто.

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

Posted
16 minutes ago, x11 said:

Или сделайте так: введите что-то в UnimEdit1, потом скройте клавиатуру, а потом нажмите кнопку.

А если попробовать такой подход?

UnimButton1 ->

function tap(sender, e, eOpts)
{
    Ext.get(Ext.Element.getActiveElement()).blur();
}

 

  • Like 1
  • 3 months later...
Posted

Похожий вопрос с 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.

Posted
12 minutes ago, x11 said:

selCMD.JSInterface.JSAddListener('---', '---');// как скрыть клавиатуру?

А если попробовать так?:

selCMD.JSInterface.JSCode('Ext.get(Ext.Element.getActiveElement()).blur();');

 

  • Like 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...