Показать сообщение отдельно
  #9  
Старый 14.08.2019, 14:13
Аватар для Kailon
Kailon Kailon вне форума
Активный
 
Регистрация: 06.06.2010
Сообщения: 339
Версия Delphi: 10.4
Репутация: 429
Сообщение

Цитата:
Сообщение от Maks19
Но функцию можно прописать один раз, а обработчик keypress надо для каждого edita.
Добавляем процедуру к классу нашей формы
Код:
type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    procedure KeyPress(Sender: TObject; var Key: Char);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
Затем жмем Ctrl+Shift+C и чуть-чуть переделываем код предоставленный lmikle
Код:
procedure TForm1.KeyPress(Sender: TObject; var Key: Char);
begin
  If Not (Key In ['0'..'9', '.', #8, #13, '-'])
    Then Key := #0
    Else
      Begin
         If (Key = '.') And (Pos('.', (Sender as TEdit).Text) > 0) Then Key := #0;
         If (Key = '-') And (Pos('-', (Sender as TEdit).Text) > 0) Then Key := #0;
         If (Key = '-') And ((Sender as TEdit).SelStart <> 1) Then Key := #0;
      End;
end;
Потом для каждого Edit'a в событии OnKeyPress нужно выбрать нашу процедуру KeyPress. Вот и всё. Теперь каждый Edit будет работать согласно нашей процедуре.
__________________
Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете.
Ответить с цитированием