В коде проверяется, была ли нажатая клавиша цифрой, клавишей [Tab] или [Enter]. Все остальное запрещено (код клавиши не принимается, и устанавливается в ноль) и подается сигнал через компьютерную пищалку. 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;
|
Если вы не хотите связываться с десятичной дробью, уберите строчку с ключевым словом 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;
|
|