Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2010, 05:46   #1
KaimNotark
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 23
По умолчанию проверка содержимого поля Edit

Добрый день, уважаемые форумчане.

Имеются два поля Edit_txt и Edit_numb.
Нужно организовать проверку введенных пользователем данных.
Чтобы в поле Edit_txt был только текст, а
в поле Edit_numb только цифры.

Подскажите простой способ. Может функция есть какая-нибудь.
А то придется городить подпрограмму, которая будет посимвольно
проверять всю строчку в поле. Сдается мне , это не самый удачный вариант.

Спасибо.
KaimNotark вне форума Ответить с цитированием
Старый 12.02.2010, 06:58   #2
Скандербег
Форумчанин
 
Регистрация: 04.04.2009
Сообщений: 438
По умолчанию

Применить вместо TEdit TMaskEdit с соответствующими масками-фильтрами.
Скандербег вне форума Ответить с цитированием
Старый 12.02.2010, 07:00   #3
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', #8]) then key := #0;
end;
С текстом разберешься?
Баламут вне форума Ответить с цитированием
Старый 16.02.2010, 03:48   #4
KaimNotark
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 23
По умолчанию

Попробую. Видимо так:

Код:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['А'..'Я', #8]) then key := #0;
end;

Последний раз редактировалось mihali4; 16.02.2010 в 04:00.
KaimNotark вне форума Ответить с цитированием
Старый 16.02.2010, 06:28   #5
Баламут
Баламучу слегка...
Участник клуба
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Сообщений: 1,585
По умолчанию

Ну тогда уж лучше так:
Код:
   if not (key in ['А'..'я','Ё','ё','A'..'z', #8, #32]) then key := #0;
Да и то, это будет работать в версиях Делфи, не поддерживающих юникод.
Баламут вне форума Ответить с цитированием
Старый 16.02.2010, 06:44   #6
KaimNotark
Пользователь
 
Регистрация: 10.12.2009
Сообщений: 23
По умолчанию

С цифрами сделал так:

Код:
// E_Cena.Text:='';    только цифры
procedure TF_WindowD1.E_CenaKeyPress(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9', #8, #16, #13])// если юзер ввел не цифру
  then // тогда
    begin
    key:=#0; // нажатый символ не записывать в поле
    // вывести информационное сообщение
    ShowMessage('Поле "ЦЕНА" должно содержать только цифры.');

    end;
end;
Ежели имеются замечания от более опытных программистов - готов выслушать.
KaimNotark вне форума Ответить с цитированием
Старый 16.02.2010, 07:45   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
if not (key in ['0'..'9', #8, #16, #13])// если юзер ввел не цифру
Я бы еще добавил символ разделитель для вещественных (ака копеек)
if not (key in ['0'..'9', #8, #16, #13,DecimalSeparator])// если юзер ввел не цифру или начал вводить копийчины
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос на изменение содержимого поля записи таблицы Reinforced Microsoft Office Access 2 07.10.2009 14:56
Проверка поля формы на JavaScript Kasiopeya JavaScript, Ajax 12 10.05.2009 16:39
изменение содержимого поля edit truel Win Api 1 21.04.2008 12:31
Проверка Edit, через val.. r-tem Компоненты Delphi 2 13.12.2007 20:19
Конвертирование из поля Edit в нормальный знак. alikon1 Общие вопросы Delphi 11 27.11.2007 22:53