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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.05.2007, 15:50   #1
Макс84
Пользователь
 
Аватар для Макс84
 
Регистрация: 27.03.2007
Сообщений: 10
Вопрос Ограничение ввода в Edit

Помогите!!!
Мне необходимо, чтобы в Edit можно было вводить только числа и чтоб эти числа были в интервале от -999 до +999. Если введеные числа не входят в данный интервал, то нужно, чтобы выдавалось сообщение об ошибке.
Макс84 вне форума Ответить с цитированием
Старый 10.05.2007, 16:38   #2
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var n:integer;
begin
n:=strtoint(edit1.Text);
if (n < -999)or(n > 999)then showmessage('число выходит за границы диапазона');
end;
SERG1980 вне форума Ответить с цитированием
Старый 10.05.2007, 16:42   #3
DelphiLab
Пользователь
 
Регистрация: 07.05.2007
Сообщений: 18
По умолчанию

Для этого существует TSpinEdit с закладки Samples
DelphiLab вне форума Ответить с цитированием
Старый 10.05.2007, 16:59   #4
Shuraken
Форумчанин
 
Аватар для Shuraken
 
Регистрация: 16.04.2007
Сообщений: 298
По умолчанию

procedure TForm1.Edit1KeyPress(Sender: TObject;
var Key: Char)
var n:integer;
begin
if not (key in ['-', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', char(ord(vk_delete))]) then
begin
beep;
key := #0;
end
else
begin
n:=strtoint(edit1.Text);
if (n < -999) or (n > 999) then
begin
beep;
key := #0;
end
else
inherited;
end;
end;
Не надо ничего усложнять. Все достаточно тривиально.
Shuraken вне форума Ответить с цитированием
Старый 10.05.2007, 17:18   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

единственное что дополню: лучше используйте strtointdef во избежание возникновения ошибок.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 10.05.2007, 19:25   #6
Andr
Пользователь
 
Аватар для Andr
 
Регистрация: 11.04.2007
Сообщений: 75
По умолчанию

repeat
val (edit1.text, tmp, code);
if code <> 0 then
edit1.clear;
until code = 0;
Andr вне форума Ответить с цитированием
Старый 22.07.2007, 21:33   #7
Максим-2
Пользователь
 
Аватар для Максим-2
 
Регистрация: 01.07.2007
Сообщений: 30
По умолчанию

Зачем так мудрить? Не проще ли задать в свойстве Editа :
MaxLength =3 и всё!
Максим-2 вне форума Ответить с цитированием
Старый 23.07.2007, 09:38   #8
_SERGEYX_
Участник клуба
 
Аватар для _SERGEYX_
 
Регистрация: 07.07.2007
Сообщений: 1,518
По умолчанию

Из всех просмотренных мной кодов для ограничения ввода в edit только цифр мне понравился этот: (вставляет разделитель системы, ограничивает к-во цифр после разделителя, не дает поставить 2 разделителя или разделитель как первый символ.... )
Код:
 var
  vrPos, vrLength, vrSelStart: byte;
const  I: byte = 1; //i+1, два знака после запятой
begin
  with Sender as TEdit do
  begin
    vrLength := Length(Text);
    vrPos := Pos(decimalseparator, Text);
    vrSelStart := SelStart;
  end;
  case Key of
    '0'..'9':
      begin
        if (vrPos > 0) and (vrLength - vrPos > I) and (vrSelStart >= vrPos) then
          Key := #0;
      end;
    ',', '.':
      begin
        if (vrPos > 0) or (vrSelStart = 0) or (vrLength = 0) then
          Key := #0
        else
          Key := decimalseparator;
      end;
    #8: ;
  else
    Key := #0;
  end;
end;
_SERGEYX_ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ограничение по вводу символов в Edit-e Alexij Общие вопросы Delphi 1 26.06.2008 16:27
Ограничение ввода символов. Delphi Alex_2017 Общие вопросы Delphi 2 05.06.2008 18:45
Ограничение ввода символов. Delphi Alex_2017 Помощь студентам 0 04.06.2008 17:26
Ограничение формул МИН и МАКС Bu$ter Microsoft Office Excel 2 29.05.2008 09:21
Ограничение на вводимое кол-во символов??? serjii Microsoft Office Excel 3 05.10.2007 10:55