StringGrid Delphi
Событие OnKeyPress
Событие OnKeyPress компонента StringGrid Delphi происходит при нажатии клавиши на клавиатуре. Событие OnKeyPress происходит после события OnKeyDown, но перед событием OnKeyUp. Обработчик события OnKeyPress имеет следующий вид:
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
begin
end;
Переменная Key, содержащая код нажатой клавиши, имеет тип Char, то есть символ, поэтому, в отличие от событий OnKeyDown и OnKeyUp событие OnKeyPress происходит при нажатии не любых, а только символьных клавиш.
Кроме того, переменная Key используется с ключевым словом var, которое означает что значение переменной Key может быть переопределено с передачей значения вовне процедуры. Эффект такого переопределения таков, как будто вместо действительно нажатой была нажата другая клавиша, имеющая значение соответствующего символа.
Пример. Пусть нам нужно запретить ввод в таблицу других символов крому числовых. Для этого составим множество числовых символов, и при нажатии любых клавиш с символами не входящими в это множество будем заменять значение переменной Key на символ "отсутствие символа" (#0):
procedure TForm1.StringGrid1KeyPress(Sender: TObject; var Key: Char);
const Digit=['0', '1'..'9'];
begin
if (not (Key in Digit)) then Key:=#0;
end;
Теперь при нажатии любых клавиш кроме числовых ввод будет блокироваться. Таким же способом можно вообще запретить редактирование ячеек таблицы.
Читайте также:
- Событие OnSelectCell компонента StringGrid