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

[Android] Как убрать "Вставить" и подчеркивание при фокусе?


brunnengi

Вопрос

Здравствуйте.

 

Положил TEdit на форму в Андроид приложении.

Когда я нажимаю на Edit, то выскакивает клавиатура для ввода данных, а так же всплывает кнопочка "Вставить". А при вводе текста, он подчеркивается.

 

Подскажите пожалуйста, как сделать так что бы, текст не подчеркивался и "Вставить" не выползала, когда просто нажимаешь пальцем на Edit?

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

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

  • 0
  • Администраторы

Подчеркивание текста - это результат работы проверки текста. Ее можно отключить через:

TEdit.CheckSpelling = False

Кнопка 'Вставить" системная и появляется по системным правилам. Управлять ее поведением увы не удастся.

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

Дело в том что во всей системе "Вставить" появляется только после некоторого удержания пальцем в области ввода. И только в приложении на FMX он выскакивает сразу.

CheckSpelling не исправил ситуацию (((

 

Update 1:

После перезагрузки телефона (я его просто очень редко перезагружаю его  ибо пашет отлично) подчеркивание вернулось во всех остальных приложениях. Значит оно так и должно быть.

Но вот что касается "Вставить", а оно все равно выскакивает слишком быстро. Так то что бы оно появилось в других приложениях надо поддержать малость. А тут в приложении на FMX он практически моментально выскакивает.

 

У меня Андроид 4.4.2 

Телефон Samsung Note 3

Изменено пользователем Brovin Yaroslav
Объединено со следующим ответом
Ссылка на комментарий
  • 1

Избежать появления кнопки Вставить можно очисткой буфера обмена.

Например так:

 
procedure TFormMain.Edit1CanFocus(Sender: TObject; var ACanFocus: Boolean);
begin
  if Assigned(FClipboardSvc) then
    FClipboardSvc.SetClipboard('');
  ACanFocus:=True;
end;

Обратите внимание что именно пустая строка очищает буфер, попытка сделать FClipboardSvc.SetClipboard(Nil); поместит в буфер строку 'empty'.

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

Избежать появления кнопки Вставить можно очисткой буфера обмена.

Обратите внимание что именно пустая строка очищает буфер, попытка сделать FClipboardSvc.SetClipboard(Nil); поместит в буфер строку 'empty'.

Попробовал ваш код. Не помогло. Буфер не очищается.  :huh:

 

PS. Brovin Yaroslav, кстати TEdit.CheckSpelling = False тоже не убирает подчеркивание.

 

PPS. Delphi RX, Android 4.2.2

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

 

Избежать появления кнопки Вставить можно очисткой буфера обмена.

Обратите внимание что именно пустая строка очищает буфер, попытка сделать FClipboardSvc.SetClipboard(Nil); поместит в буфер строку 'empty'.

Попробовал ваш код. Не помогло. Буфер не очищается.  :huh:

 

PS. Brovin Yaroslav, кстати TEdit.CheckSpelling = False тоже не убирает подчеркивание.

 

PPS. Delphi RX, Android 4.2.2

 

Быть такого не может. Отладкой проверяли? Может у вас срабатывает на if Assigned(FClipboardSvc) then и ничего не выполняется. 

 

В главной форме не забудьте    FClipboardSvc: IFMXClipboardService;

 

и потом:

procedure TFormMain.FormCreate(Sender: TObject);
begin
  if not TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(FClipboardSvc)) then
    FClipboardSvc := nil;
...
Ссылка на комментарий
  • 0

Евгений Корепов, благодарю. Как раз кода в FormCreate не хватало ^^^

Теперь кнопка Вставить не появляется

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

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

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

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

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

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

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

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

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

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