• 0
Ufomaster

Как при переходе с эдита на эдит очистить предыдущий текст в клавиатуре, что бы он не попал в новый эдит?

Вопросы

Как при переходе с эдита на эдит очистить предыдущий текст в клавиатуре, что бы он не попал в новый эдит при нажатии на любой символ? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

16 ответов на этот вопрос

  • 0

Что значит "очистить предыдущий текст в клавиатуре"? Клавиатура у нас теперь хранит текст?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

При наборе алфавитного текста в клавиатуре появляется три поля среднее что набираю и боковые подсказки. Если перейти с одного эдита на другой клавиатура не скрывается и текст в средней ячейки остаётся, а если нажать любую букву то в эдит попадает предыдущий текст + нажатая буква.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Что значит "очистить предыдущий текст в клавиатуре"? Клавиатура у нас теперь хранит текст?

у меня почему-то хранит. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Это в настройки клавиатуры посмотри у меня тоже ничего не хранит 

 

Проверил на планшете Android 4.4.2 - все работает правильно. 

На телефоне Android 4.2.1 - глюк стабилен. Даже если просто переместить каретку в середину слова набранный текст не удаляется и следующий символ вставляет все что было до этого. В поле набора смс такого бага нету. 

Изменено пользователем Ufomaster

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В ‎06‎.‎10‎.‎2015 в 15:13, Ufomaster сказал:

Проверил на планшете Android 4.4.2 - все работает правильно. 

Наблюдаю "те-же яйца" на планшете с  Android 4.4.2  :( , но только на главной форме.   Вам удалось хотя бы обойти проблему ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Присоединяюсь к главному вопросу. Уже пол года не знаю как побороть этот косяк.
За это время перепробовал на Андроидах 4-й, 5-й и 6-й версий. И на планшетах и на смартфонах.
Не встретил ни одного устройства, которое бы при переходе с поля (Tedit) на поле, забывало бы предыдущий стринг.
Вставляет его, хоть ты тресни, плюс первую нажатую букву.
Сейчас тестирую на смартфоне, 6-й Андроид. Выставил в настройках клавиатуры - отключить подсказки.
Клава теперь тупо вводит буквы. Но это же не выход.
Даже если выход, то очень некрасивый, подсказки многим удобны и нужны.
Приложения пишу на Сиэтле.
Все еще надеюсь, что найдется красивое решение.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Попробуйте при переходе в другой Edit переоткрывать клавиатуру. (хотя тоже костыль получается...)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
4 часа назад, Andrey Efimov сказал:

Попробуйте при переходе в другой Edit переоткрывать клавиатуру. (хотя тоже костыль получается...)

Сделал вот так :

  if TPlatformServices.Current.SupportsPlatformService(IFMXVirtualKeyboardService, IInterface(KeyboardService)) then
   begin
    KeyboardService.HideVirtualKeyboard;
    KeyboardService.ShowVirtualKeyboard(ClearingEdit2);
   end;

Работает.  Правда не радует "моргание" клавиатурой, но ... хоть что-то.  Спасибо !

Возможно лучше будет разделить сокрытие клавы и ее повторный показ по двум edit-ам.

Разделил. Получается вполне нормально. Еще раз - СПАСИБО !  ;)

Изменено пользователем Crusader99
Дополнение

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Сам сейчас столкнулся с этой проблемой.

В 02.09.2016 в 16:12, Crusader99 сказал:

Возможно лучше будет разделить сокрытие клавы и ее повторный показ по двум edit-ам

Не могли бы Вы подробнее рассказать, что Вы сделали?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 06.10.2015 в 01:57, Ufomaster сказал:

Как при переходе с эдита на эдит очистить предыдущий текст в клавиатуре, что бы он не попал в новый эдит при нажатии на любой символ? 

Думал, у меня одного такой глюк ))

Клавиатура TouchPal

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
В 25.03.2017 в 12:16, dtevgeny сказал:

Не могли бы Вы подробнее рассказать, что Вы сделали?

на потерю фокуса эдитом - скрыть клавиатуру.

на получение фокуса - показать.

как-то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

У меня второй год пошел этому косяку и нет никаких вариантов решения, кроме как принудительно убирать клаву при потере фокуса у эдит,
а вход в следующий эдит сам ее открывает. За два года не встретилось ни одного устройства, где бы не проявился этот косяк.
Удивительно, что на форуме почти никто про это не пишет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Мне помогло следующее:

  TThread.Synchronize(nil, procedure
  begin
    memoChatMessage.Text := ' ';
    memoChatMessage.SelectAll;
    memoChatMessage.DeleteSelection;
  end);

 

Изменено пользователем AlexG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
17 часов назад, AlexG сказал:

Мне помогло следующее:


  TThread.Synchronize(nil, procedure
  begin
    memoChatMessage.Text := ' ';
    memoChatMessage.SelectAll;
    memoChatMessage.DeleteSelection;
  end);

 

В какой момент это вызывать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0
57 минут назад, Rusland сказал:

В какой момент это вызывать?

Собственно это зависит от того как Вам требуется. У меня при нажатии на кнопку на форме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От Макс Войтенко
      var Keyboard: IFMXVirtualKeyboardService; begin if TPlatformServices.Current.SupportsPlatformService( IFMXVirtualKeyboardService, IInterface( Keyboard ) ) then if TVirtualKeyboardState.Visible in Keyboard.GetVirtualKeyBoardState then ShowMessage( 'клавиатура открыта' ) else ShowMessage( 'клавиатура скрыта' ); end; ТАК Я на шел для делфи. Но мне нужно для C++
    • От Barbanel
      Здравствуйте уважаемые,
      есть форма с множеством TEdit, при этом они не помещаются на один экран и помещена на TScrollBox.
      При скороллинге если скроллить нажимая на подложку (т.е. сам TScrollBox) все работает идеально, если же нажимать на сам TEdit и таким образом скроллить, то выезжает клавиатура, что вобщемто неудобно.
      Вопрос: как настроить приложение/форму/ТСкроллБокс так, чтобы при зажатии и движении пальца вверх/вниз на ТЕдите клавиатура не выезжала?
      На нативных приложениях описанного выше поведения я не замечал.
       
      Заранее спасибо!
       
    • От Features
      Добрый день.
      Есть весьма странная задача : разработать собственную клавиатуру для системы (а не чисто для своего приложения) (developer.android.com, пример реализации в Android Studio).
       Возможно ли средствами Firemonkey это реализовать, или придется делать обертки java классов и подключать их в проект?
      п.с. дабы не плодить темы, такая же задача стоит и для IOS (Реализация в XCode).
      Буду очень благодарен за помощь и наставление в нужное русло.)
    • От Дениска
      на OnClose формы делаем так: 
        procedure TForm2.OnClose(Sender: TObject; var Action: TCloseAction); begin   Action := TCloseAction.caFree; end;   и освобождаем форму не Free, а DisposeOf:   Form2 := TForm2.Create(nil); Form2.ShowModal; Form2.DisposeOf;
    • От Dozent
      День добрый! Как вызвать клавиатуру при попадании фокуса в эдит, приложение под 8.1? Я кинул на форму эдит указал тип клавиатуры, запускаю проект, тыкаю на эдит но клавиатура не появляется....
    • От Tarik02
      Как конвертировать символ в виртуальный код клавиши для функции keybd_event на windows. Дело в том, что нужно конвертировать на android, так-как некоторые символы нужно передавать без конвертации.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу