Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > запрет на ввод диапазона чисел


Автор: dize 12.11.2009, 16:59
Необходимо добавить ограничение на ввод чисел больше 100
Код

procedure Tnew_order.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not (Key in ['0'..'9', DecimalSeparator,#8,#13])
or ((Key = DecimalSeparator)
and (POS (DecimalSeparator, Edit2.Text) = 0))
or ((Key = '-') and (POS ('-', Edit2.Text) = 0))
then
  begin
      Key := #0;
  end;
end;

Пробовал так
Код

procedure Tnew_order.Edit2KeyPress(Sender: TObject; var Key: Char);
var
x:integer
begin
if not (Key in ['0'..'9', DecimalSeparator,#8,#13])
or ((Key = DecimalSeparator)
and (POS (DecimalSeparator, Edit2.Text) = 0))
or ((Key = '-') and (POS ('-', Edit2.Text) = 0))
then
  begin
      Key := #0;
  end;
x:=strtoint(edit2.Text);
if (x < 0) or (x > 100) then
begin
key := #0;
end;
end;

Но ругается на любой ввод '''is not a valid integer value.

Автор: ~FoX~ 12.11.2009, 17:37
dize, Потому что OnKeyPress возникает раньше чем OnChange...Не проще SpinEdit использовать?

Автор: dize 12.11.2009, 18:04
~FoX~, проще конечно, но интересует этот вариант, без привязки к button.

Автор: ~FoX~ 12.11.2009, 21:29
dize, Просто проверку вынеси в онЧейндж...

Автор: amsoft 13.11.2009, 09:48
используй TMaskEdit,
пропиши его свойство

Цитата

TMaskEdit.MaskEdit := '99;0; '

Автор: dize 13.11.2009, 15:32
~FoX~, точно, исправил уже..совсем голова не работает к концу рабочего дня..спасибо за подсказку smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)