Компонент Delphi StringGrid









                                           ГЛАВНАЯ           СВОЙСТВА           СОБЫТИЯ           ПРИЁМЫ  ПРОГРАММИРОВАНИЯ




События StringGrid
11. OnClick
14. OnEnter
15. OnExit
19. OnKeyDown
11. OnKeyUp
14. OnMouseUp




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

    Сайт из коллекции Компоненты Delphi    

    Карта сайта