Проблема: Запускаю на гаджете приложение, получаю при запуске пустое поле NumberBox -а (хотя должен стоять 0), ставлю курсор в поле NumberBox, и дальше реакция раздваивается в зависимости от модели гаджета на Google Nexus 5 при вводе цифр - ввод начинается, а на Sony Xperia Z, Samsung GalaxyS4, Samsung Note 3 и других при нажатии на клавиши виртуальной клавиатуры цифры не вводяться. Ситуацию можно исправить только "танцем с бубном", если после запуска приложения поставить курсор в поле NumberBox , потом выйти из него куда-нибудь, а потом опять поставить курсор в поле NumberBox, появиться предустановленный 0 и ввод цифр начнётся на любом гаджете.
Проблема2: если всё-таки ввести цифры в поле, а потом стереть их BackSpace-ом и перейти в другое поле приложения, то стёртое число опять появится в поле.
Вопрос: Как заставить NumberBox сразу и предсказуемо работать на любом гаджете?
Ситуация2: Решил заменить кривоработающий TNumberBox на TEdit с ограничением ввода символов, через отлов переменной var KeyChar: Char события OnKeyDown . Разместил TEdit, в событии OnKeyDown пишу:
case keyChar of
'0'..'9': ;
'.' : //точка
if (length((Sender as TEdit).Text)=0) //первой точку не ставить
or (ansiPOS('.',(Sender as TEdit).Text)<>0) //ещё одну точку не ставить
then keyChar:=#0;
else keyChar:=#0;
end;
Проблема: Но оказалось, что OnKeyDown не срабатывает на точку, запятую, знак минус и пробел (которые есть на вируальной клавиатуре "NumberPad") , т.е. эти символы вводятся в поле TEdit, а OnKeyDown не реагирует на них.
Проверил так, в событии OnKeyDown написал:
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word; var KeyChar: Char;
Shift: TShiftState);
begin
ShowMessage('KeyChar='+KeyChar+' Key='+IntToStr(Key))
end;
Получаю сообщение только при нажатии на кнопки с цифрами, при нажатии на любые не буквенные/цифровые кнопки OnKeyDown не срабатывает.
Пробовал использовать переменную var Key: Word;события OnKeyDown так при любых нажатиях клавиш выдаётся, что Key=0. Может я чего-то не догоняю???
Вопрос: как заставить нормально срабатывать событие OnKeyDown у TEdit на любое нажатие кнопок и получать нормальное значение в переменную Key:Word?
З.Ы. Под Windows(x32) OnKeyDown реагирует на все кнопки, но переменная Key всё равно =0; (см.рис.).
Вопрос
abwabw
DelphiXE5 Update2 и DelphiXE6 оба с MobileAddOn фсё лицензионное.
Ситуация: создаю FireMonkey Mobile App. На форме размещаю компонент NumberBox (надо вводить цену), присваиваю свойства:
Проблема: Запускаю на гаджете приложение, получаю при запуске пустое поле NumberBox -а (хотя должен стоять 0), ставлю курсор в поле NumberBox, и дальше реакция раздваивается в зависимости от модели гаджета на Google Nexus 5 при вводе цифр - ввод начинается, а на Sony Xperia Z, Samsung GalaxyS4, Samsung Note 3 и других при нажатии на клавиши виртуальной клавиатуры цифры не вводяться. Ситуацию можно исправить только "танцем с бубном", если после запуска приложения поставить курсор в поле NumberBox , потом выйти из него куда-нибудь, а потом опять поставить курсор в поле NumberBox, появиться предустановленный 0 и ввод цифр начнётся на любом гаджете.
Проблема2: если всё-таки ввести цифры в поле, а потом стереть их BackSpace-ом и перейти в другое поле приложения, то стёртое число опять появится в поле.
Вопрос: Как заставить NumberBox сразу и предсказуемо работать на любом гаджете?
Ситуация2: Решил заменить кривоработающий TNumberBox на TEdit с ограничением ввода символов, через отлов переменной var KeyChar: Char события OnKeyDown . Разместил TEdit, в событии OnKeyDown пишу:
Проблема: Но оказалось, что OnKeyDown не срабатывает на точку, запятую, знак минус и пробел (которые есть на вируальной клавиатуре "NumberPad") , т.е. эти символы вводятся в поле TEdit, а OnKeyDown не реагирует на них.
Проверил так, в событии OnKeyDown написал:
Получаю сообщение только при нажатии на кнопки с цифрами, при нажатии на любые не буквенные/цифровые кнопки OnKeyDown не срабатывает.
Пробовал использовать переменную var Key: Word;события OnKeyDown так при любых нажатиях клавиш выдаётся, что Key=0. Может я чего-то не догоняю???
Вопрос: как заставить нормально срабатывать событие OnKeyDown у TEdit на любое нажатие кнопок и получать нормальное значение в переменную Key:Word?
З.Ы. Под Windows(x32) OnKeyDown реагирует на все кнопки, но переменная Key всё равно =0; (см.рис.).
Ссылка на комментарий
2 ответа на этот вопрос
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.