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

[Отклонение] [Android] Не меняется KeyboardType при переходе на следующий TEdit


krapotkin

Вопрос

На форме два TEdit

KeyboardType у первого = NamePhonePad

у второго = Alphabet

 

при переходе фокуса клавиатура остается такой, какая была при входе в первый из Edit'ов

как принудительно поменять тип клавиатуры?

Изменено пользователем krapotkin
Ссылка на комментарий

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

  • 0
procedure TForm1.Edit1Enter(Sender: TObject);
begin
  CheckVK(Edit1);
end;

procedure TForm1.Edit2Enter(Sender: TObject);
begin
  CheckVK(Edit2);
end;

procedure TForm1.CheckVK(const aEdit: TEdit);
var
  KeyboardService: IFMXVirtualKeyboardService;
begin
  if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) and
    (TVirtualKeyboardState.Visible in KeyboardService.VirtualKeyboardState) then
  begin
    KeyboardService.HideVirtualKeyboard;
    KeyboardService.ShowVirtualKeyboard(aEdit);
  end;
end;
 
Изменено пользователем enatechno
Ссылка на комментарий
  • 0

Чтоб лишний раз не менялась, добавил проверку на текущий тип

  if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) and
    (TVirtualKeyboardState.Visible in KeyboardService.VirtualKeyboardState) and
    (aEdit.KeyboardType <> FCurVKType) then
  begin
    KeyboardService.HideVirtualKeyboard;
    KeyboardService.ShowVirtualKeyboard(aEdit);
    FCurVKType := aEdit.KeyboardType;
  end;

tstVK.zip

Изменено пользователем enatechno
Ссылка на комментарий
  • 0

спасибо за ответы, но

этот метод (спрятать/показать клавиатуру) я перед этим уже испробовал сам

нужного эффекта по-прежнему нет...

 

вообще чертовщина.

 

если KeyboardType = alphabet то у Edit есть KeyDown и KeyUp

если KeyboardType = numpad то только KeyDown, в KeyUp она уже не приходит

при этом сама клава, есс-но, остается как была alpha

 

Если в Edit1.OnKeyDown сделать Edit2.SetFocus, то срабатывает Edit2.OnKeyDown, даже если Key:=0 !!!!

O_O

Изменено пользователем krapotkin
Ссылка на комментарий
  • 0

Подведу итог

После всех изысканий выяснилось, что не все йогурты клавиатуры одинаково полезны.

Стандартная клава Google все делает правильно, свайп тоже

Косяк KeyboardType проявлялся только на моей предустановленной в телефоне клавиатуре

Остальные выявленные проблемы - более стойкие и не зависят от клавиатуры.

 

Благодарю всех за участие и помощь

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

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

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

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

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

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

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

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

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

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