Topic: Что здесь не так?

Добрый день!
Проблема такая, хочу контролировать ввод символов в поле. Маска ввода не подходит так как я использую в этом поле значения суммы, в формате: 9 999 999,99
Использую для этого следующий метод контроля:

procedure Form1k_Edit4_OnKeyPress (Sender: string; var Key: Char);
begin
     case Key of
     '0'..'9':;
     #8:;
     ',','.': IF Pos(DecimalSeparator,Form1k.Edit4.Text)=0 Then Key:=DecimalSeparator Else Key:=#0;
     Else
     Key:=#0;
     end;
end;

Вот только при попытке ввода в поле ничего не происходит, значения клавиш не вводятся, поле остается пустым!
В чем может быть проблема?

Re: Что здесь не так?

Поправка. Если вышеописанную процедуру написать таким образом:
procedure Form1k_Edit4_OnKeyPress (Sender: string; var Key: Char);
begin
     case Key of
     '0'..'9':;
     #8:;
     ',','.': IF Pos(DecimalSeparator,Form1k.Edit4.Text)=0 Then Key:=DecimalSeparator Else Key:=#0;
     Else
     //Key:=#0; (Пропустить эту часть кода)
     end;
end;

То все вводится, но уже можно вписать в поле не только цифровые значения но и буквенные, а мне их нужно отсеять!

Re: Что здесь не так?

Скачайте пожалуйста бета версию 1.48, добавил в ней функцию DecimalSeparator
https://www.dropbox.com/s/6rz92s72djtmv … 8.zip?dl=0


Попробуйте так

procedure Form1_Edit2_OnKeyPress (Sender: string; var Key: Char);
begin

    case Key of
         '0'..'9', #8: begin end;

         ',','.': IF Pos(DecimalSeparator, Form1.Edit2.Text)=0 Then Key:=DecimalSeparator Else Key:=#0;

         Else Key:=#0;
    end;

end;  
Dmitry.

Re: Что здесь не так?

Спасибо заработало!
Действительно нужно было запустить и остановить процедуру выбора ключей.