Перейти к содержанию
  • Регистрация
  • 0
Adm123

не поймать KeyUp, KeyDown

Вопрос

XE10 проект под андроид.

 

Я совсем сумасшедший, похоже, но второй день не могу отловить события клавиатуры... Подскажите, плиз, что не так?!

 

Собственно, тестовый проект - форма и один edit и одна лэйба на ней...

procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  Label1.Text:= 'KeyUp';
end;

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
begin
  Label1.Text:= 'KeyDn';
end;

И ничего! Ввод буковок-цифирок происходит, а метка не меняется...

 

Отрабатывает KeyDown на аппаратную кнопку сворачивания клавиатуры. А нажатие клавиш не ловится...

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

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


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

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

  • 0
unit Unit1;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
  FMX.Controls.Presentation, FMX.StdCtrls, FMX.TabControl, FMX.Layouts, FMX.Ani,
  System.UIConsts, System.DateUtils, FMX.Edit, IdBaseComponent, System.JSON,
  IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, FMX.Objects, System.IOUtils;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Label1: TLabel;
    procedure Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char; Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.fmx}

procedure TForm1.Edit1KeyUp(Sender: TObject; var Key: Word; var KeyChar: Char;
  Shift: TShiftState);
begin
  if Key = vkReturn then Label1.Text:= inttostr(Key);
end;

end.

И так работает? На каждое нажатие виртуальной клавиши (во время редактирования Edit-а) пишет ее код? Под андроидом?

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


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

Звеняй, я тупанул чуток. Еще раз проверил, все так же как у тебя.

Надо лезть в дебри и искать как захендлить ивенты виртуальной клавиатуры.

Скажи для какой задачи ты делаешь эти манипуляции, может по другому подойти можно будет к этому вопросу. 

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

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


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

Суть такая. На форме лежит TabControl. В нем на вкладках VertScrollBar-ы, в них - Edit-ы.

Как водится, вылезающая клавиатура закрывает часть полей для ввода. На событии вылезния клавиатуры я меняю Margins.Bottom у TabControla и все в порядке... но при убирании клавиатуры есть грабли. Если ее убирать аппаратной кнопкой - все нормально, обнуляю Margin и снова все красиво. А вот если клавиатура не "родная" и имеет свою кнопку сворачивания (у меня, например, Hitap Keyboard), то событие формы OnKeyboardHidden при нажатии на эту свою кнопку сворачивания не возникает.

Вот и хотел я отловить нажатие кнопки на виртуальной клавиатуре...

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


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

В общем, решения толком нет. Нашел большущий костылище - http://codeverge.com/embarcadero.delphi.firemonkey/-android-onkeydown/1056646, но использовать такое рука не поднимается. Буду искать более тривиальное решение задачи.

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


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

Как водится, вылезающая клавиатура закрывает часть полей для ввода. На событии вылезния клавиатуры я меняю Margins.Bottom у TabControla и все в порядке...

Есть же такая штука, которую нужно всего лишь вписать в uses проекта  https://github.com/rzaripov1990/vkbdhelper

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


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

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

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

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


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

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

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

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

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

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

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

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

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


  • Последние посетители   0 пользователей онлайн

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

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