Показать сообщение отдельно
  #10  
Старый 14.08.2019, 20:42
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от Maks19
Но функцию можно прописать один раз, а обработчик keypress надо для каждого edita.

И в чем проблема? Сделать еще одну маленькую проверку и закастить Sender к TEdit?
Код:
procedure TForm1.Edit1KeyPress(Sender : Tobject; var Key : Char);
var
  Edit : TEdit;
begin
  If Not (Sender Is TEdit) Then Exit;
  Edit := Sender As TEdit;

  If Not (Key In ['0'..'9','.',#8,#13,'-'])
    Then Key := #0
    Else
      Begin
         If (Key = '.') And (Pos('.',Edit.Text) > 0) Then Key := #0;
         If (Key = '-') And (Pos('-',Edit.Text) > 0) Then Key := #0;
         If (Key = '-') And (Edit.SelStart <> 1) Then Key := #0;
      End;
end;
И назначай этот же обработчик всем Edit'ам...
Ответить с цитированием