adsl club

Справочник

Форум

Программы

Фильмы

Ресурсы

Файлообмен

Хостинг

Ростелеком
Контроль ввода значений в Builder
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ
Автор Сообщение
Sheh
Гость
СообщениеДобавлено: Вс 3-12-06 : 17-44    Заголовок сообщения: Контроль ввода значений в Builder Ответить с цитатой

Собственно, как? Например, есть Edit1. Мне нужно, чтобы туда вводились тока цифры, к тому же в определенном диапазоне. Смотрел компонент EditMask, но он не подходит мне, т.к. в последующем к тому что я ввел в это окошко нужно применять функцию преобразования строки в число StrToInt, а эта самая маска дописывает туда вместо не введенных цифр то символы '_', то '0' (в зависимости от того какая маска). Ну и естественно в таком случае преобразование строки в число работает некорректно. Че делать?
 Наверх
Klayd
Гуру
Предупреждений : 1
СообщениеДобавлено: Вс 3-12-06 : 17-58    Заголовок сообщения: Ответить с цитатой

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

эх давно я с этими билдерами/делфями не общался... попробуй так...
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
Andron_
Гуру
Предупреждений : 4
СообщениеДобавлено: Вс 3-12-06 : 18-00    Заголовок сообщения: Ответить с цитатой

Обрабатывать событие OnKeyPress.
пример есть в Архангельском.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение Посетить сайт автора   Номер ICQ
Klayd
Гуру
Предупреждений : 1
СообщениеДобавлено: Вс 3-12-06 : 18-06    Заголовок сообщения: Ответить с цитатой

всётаки кейпресс? )) чёрт... а я всё думал толи он толи кейдаун... Embarassed
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
Sheh
Гость
СообщениеДобавлено: Вс 3-12-06 : 18-08    Заголовок сообщения: Ответить с цитатой

Andron_ писал(а):
Обрабатывать событие OnKeyPress.
пример есть в Архангельском.

А можешь закинуть эту книжку на risp? Ато в инете 17 мегов весит
 Наверх
Sheh
Гость
СообщениеДобавлено: Вс 3-12-06 : 18-32    Заголовок сообщения: Ответить с цитатой

Вот решение, всем спасибо!
void __fastcall TForm1::Edit2KeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{

if (Key<96 || Key>105) // Проверка на ввод только чисел
{
MessageDlg("Введите число!", mtInformation, TMsgDlgButtons() << mbOK,0);
Edit2->Text=Edit2->Text.Delete(Edit2->Text.Length(), 1); // удаление неправильного символа
}
}
Smile Smile Smile Smile Smile Smile
 Наверх
Klayd
Гуру
Предупреждений : 1
СообщениеДобавлено: Вс 3-12-06 : 18-38    Заголовок сообщения: Ответить с цитатой

а вот это обязательно?
Edit2->Text=Edit2->Text.Delete(Edit2->Text.Length(), 1); Shocked

а разве нельзя просто сделать Key="/0" или в обратную сторону слэш... вобщем я имел в виду пустой символ Embarassed ну или чтото типа того ))
както я раньше такие штуки делал буквально одним присваиванием... и кажется работало... ))
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
andryv
Форумчанин
СообщениеДобавлено: Вс 3-12-06 : 20-20    Заголовок сообщения: Ответить с цитатой

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

На сомом деле лучше ловить ексепшены от strotint и по ним ругаться уже, а по событиям ничего не делать и дать юзеру вводить чего ему угодно, потому как заказчиков жутко раздражает када на каждое нажатие ругается прога
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение Посетить сайт автора   Номер ICQ
Klayd
Гуру
Предупреждений : 1
СообщениеДобавлено: Вс 3-12-06 : 21-31    Заголовок сообщения: Ответить с цитатой

ыыы, andryv, а я уже и забыл об этом их свойстве... ))
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение   Номер ICQ
Andron_
Гуру
Предупреждений : 4
СообщениеДобавлено: Вс 3-12-06 : 23-28    Заголовок сообщения: Ответить с цитатой

Sheh писал(а):
Ато в инете 17 мегов весит

у меня она килограмма 2 весит Smile
Klayd писал(а):
всётаки кейпресс?
а фик бы знал чтоно... не помню.
 Наверх
Посмотреть профиль / Отправить личное сообщение Отправить личное сообщение Посетить сайт автора   Номер ICQ
Показать сообщения:   
Ответить на тему    Форум АДСЛ КлубаЦИФРОВОЙ ФЛЕЙМ :)ПРОГРАММИРОВАНИЕ Часовой пояс: GMT + 7
Страница 1 из 1

 

 
Аватары: Вкл|Выкл   ЮзерИнфо: Вкл|Выкл   Подписи: Вкл|Выкл
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете вкладывать файлы
Вы можете скачивать файлы