Tatiana |
Отправлено: 18.10.2004, 09:20 |
|
Не зарегистрирован
|
У меня есть обработчик события onKeyPress компонента TEdit. Как узнать в теле обработчика, какой текст в Edit в итоге получится |
|
olegenty |
Отправлено: 18.10.2004, 09:52 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
прочитай свойство Edit->Text
|
|
Tatiana |
Отправлено: 19.10.2004, 05:17 |
|
Не зарегистрирован
|
Извините за неточно заданный вопрос. Нужно узнать текст, который получится уже после нажатия клавиши. Допустим, до нажатия клавиши текст в Edit был "текст", после стал "т_екст". ShowMessage(Edit1->Text) в OnKeyPress выдает "текст", а мне нужно получить уже "т_екст".[B][U] |
|
Vital_K |
Отправлено: 19.10.2004, 06:27 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 27
|
А почему бы не использовать обработчик событий OnChange или OnKeyUp — результат один и тотже.
|
|
Guest |
Отправлено: 19.10.2004, 10:35 |
|
Не зарегистрирован
|
Но в обратчике OnChange уже не отменить нажатие клавиши. Проблема такая: в Edit вводится вещественное число, и нужно не дать пользователю ввести неверное значение. "Нецифровые" клавиши в OnKeyPress отбрасываются с помощью Key=0, но нужно еще и проверить, не выйдет ли введенное число из нужного диапазона, и если выйдет. отменить нажатие клавиши. Можно, конечно, запоминать старое значение и в OnChange заменять текст на него, но может быть, это можно сделать проще? |
|
Gedeon |
Отправлено: 19.10.2004, 11:29 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
Ну по поводу проще, не факт. Хотя наверное более правильно, определяйте где в данный момент стоит курсор, прибавляйте к уже имеющемуся тексту символ и анализируйте, если не подходит Key=NULL;
|
|
Vital_K |
Отправлено: 19.10.2004, 11:41 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 27
|
Напиши в обработчике событий Edit1KeyPress() следующее:
Set<'char, '0', '9''>Dig ;
Dig<<'0'<<'1'<<'2'<<'3'<<'4'<<'5'<<'6'<<'7'<<'8'<<'9';
if(!Dig.Contains(Key))
Key=0;
P.S. Опострофы перед char и после '9' удалить. Связано с косяком страницы — не выводит значение в скобках '<>'.
Отредактировано Vital_K — 19/10/2004, 12:54
|
|
Gedeon |
Отправлено: 19.10.2004, 12:51 |
|
Ветеран
Группа: Модератор
Сообщений: 1742
|
2Vital_K
Тегами CODE надо пользоваться.
2Tatiana
Про буфер обмена не забудьте и еще про SetWindowText(...); тоже.
|
|