Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Ограничение TEdit на ввод не-цифровой информации

Delphi , Компоненты и Классы , TEdit

Ограничение TEdit на ввод не-цифровой информации

Автор: Михаил Шпанер

Встречаются три операционных системы:
- PC-DOS. Version 7.
- OS/2. Version 4. Merlin.
- А я Windows... Просто Windows.

Посылаю Вам несколько расширенный вариант числовой маски компонента TЕdit c помощью OnKeyPress. В отличие от имеющегося в "Советах", приведенный код не "запирает" поле ввода при заполнении десятичной части, преобразует точку в запятую (для удобства пользователя), не позволяет поставить десятичную запятую перед числом и позволяет стирать знаки в поле ввода клавишей 'Back Space'. Код проверен в Delphi 5.


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
var //цифровая маска
  vrPos, vrLength, vrSelStart: byte;
const
  I: byte = 1;
    //I+1 = количество знаков после запятой (в данном случае - 2 знака)
begin

  with Sender as TEdit do
  begin
    vrLength := Length(Text); //определяем длину текста
    vrPos := Pos(',', 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 := #44; //всегда заменять точку на запятую
      end;
    #8: ; //позволить удаление знаков клавишей 'Back Space'
  else
    Key := #0; //"погасить" все остальные клавиши
  end;
end;

Статья Ограничение TEdit на ввод не-цифровой информации раздела Компоненты и Классы TEdit может быть полезна для разработчиков на Delphi и FreePascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




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



:: Главная :: TEdit ::


реклама

::


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100
15.08.2020 04:38:55/0.03095006942749/0