Главная страницаОбратная связьКарта сайта

Числовая маска компонента Edit

Я предлагаю обработать событие OnKeyPress следующим образом:


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if    NOT (Key in ("0".."9", ".", #8, #13)) // разрешенные клавиши
    OR (    (Key = ".")                  // пользователь нажал "."
    AND (POS (".", Edit1.Text) > 0)) // десятичная точка уже имеется
    then
    begin
      Key := #0;
      MessageBeep (MB_OK);
  end;
end;

В коде проверяется, была ли нажатая клавиша цифрой, клавишей [Tab] или [Enter]. Все остальное запрещено (код клавиши не принимается, и устанавливается в ноль) и подается сигнал через компьютерную пищалку.

Если вы не хотите связываться с десятичной дробью, уберите строчку с ключевым словом OR и символ "." из первого IF-условия. Если вы хотите проверять, что пользователь ввел между LowLimit и HighLimit, воспользуйтесь следующим кодом:


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if    NOT (Key in ("0".."9", #8, #13))
    OR (StrToInt (Edit1.Text + Key) < LowLimit)
    OR (StrToInt (Edit1.Text + Key) > HighLimit)
    then
    begin
      Key := #0;
      MessageBeep (MB_OK);
  end;
end;


Обсудить статью на форуме


Если Вас заинтересовала или понравилась информация по разработке на Delph - "Числовая маска компонента Edit", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу:

Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!
   


Copyright © 2008 - 2024 Дискета.info