Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

onKeyPress

3.3K
18 октября 2004 года
Татьяна
17 / / 23.01.2004
У меня есть обработчик события onKeyPress компонента TEdit. Как узнать в теле обработчика, какой текст в Edit в итоге получится
294
18 октября 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by Татьяна
У меня есть обработчик события onKeyPress компонента TEdit. Как узнать в теле обработчика, какой текст в Edit в итоге получится


...после обработки нажатия кнопки?

Что-то в таком роде:

 
Код:
AnsiString txt = Edit1->Text;
if(Key == '\x8') // afair, код клавиши 'BACKSPACE' == 8
    txt.SetLength(txt.Length() -1);
else
    txt += Key;
На самом деле, конечно, всё немного сложнее: надо обрабатывать "стрелки" и установку курсора мышкой посреди текста в Edit'е, учитывать, что часть текста может быть выделена (символ, введённый нажатием клавиши, заменит выделенный фрагмент) т.п. Т.е. "узнать в теле обработчика, какой текст в Edit в итоге получится" -- имхо, задача не такая уж тривиальная, хотя, возможно, я ошибаюсь. Не лучше ли немного скорректировать ТЗ, чтобы не было в таком обработчике не было необходимости?
3.3K
19 октября 2004 года
Татьяна
17 / / 23.01.2004
Цитата:
Originally posted by Plisteron

...после обработки нажатия кнопки?


Да, вы поняли правильно. В общем, ТЗ такое: Edit вводится вещественное число, и нужно чтобы оно было в определенном диапазоне. Как запретить ввод нечисловых символов понятно, а вот как это сделать:-? Можно запоминать предыдущий текст, и в onKeyUp, если введенное число не устраивает, заменять Edit->Text на него. А может, можно как-то проще?

246
19 октября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by Татьяна

Как запретить ввод нечисловых символов понятно, а вот как это сделать:-?
А может, можно как-то проще?


void __fastcall TForm1::FormKeyPress(TObject *Sender, char &Key)
{
if(Key == 'непечатный символ')
Key = 0;//запретили
...

294
19 октября 2004 года
Plisteron
982 / / 29.08.2003
Цитата:
Originally posted by Татьяна

Да, вы поняли правильно. В общем, ТЗ такое: Edit вводится вещественное число, и нужно чтобы оно было в определенном диапазоне. Как запретить ввод нечисловых символов понятно, а вот как это сделать:-? Можно запоминать предыдущий текст, и в onKeyUp, если введенное число не устраивает, заменять Edit->Text на него. А может, можно как-то проще?


RxCalcEdit из комплекта Rx Library поможет гиганту мысли. Только предупреждаю: установка Rx на BCB6 -- занятие, требующее... хм... некоторой усидчивости.

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог