StringGrid Delphi
Событие OnKeyUp
Событие OnKeyUp компонента StringGrid Delphi происходит при нажатии клавиши на клавиатуре, в момент когда клавиша находится в верхнем положении, то есть уже отпущена.
Обработчик события OnKeyUp имеет следующий вид:
procedure TForm1.StringGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
begin
end;
Видим, что переменная Key, содержащая код нажатой клавиши, имеет тип Word, то есть число в диапазоне Кроме того, переменная Key используется с ключевым словом var, которое означает что значение переменной Key может быть переопределено с передачей значения вовне процедуры. Эффект такого переопределения таков, как будто вместо действительно нажатой была нажата другая клавиша, имеющая соответствующий код.
Пример. Пусть при нажатии Enter происходило сохранение текста в ячейке, а при нажатии Escape - очистка ячейки. С помощью переопределения заменим нажатие клавиши Enter на нажатие клавиши Escape:
const
Enter=13;//код клавиши Enter
Escape=27;//код клавиши Escape
begin
//фрагмент...
if Key=Enter then Key:=Escape;// переопределение
if Key=Escape then
with StringGrid1 do
Cells[Col, Row]:='';
end;
Теперь и при нажатии Enter и при нажатии Escape ячейка будет очищена от текста.
Следующий параметр, Shift, имеющий тип TShiftState, поможет определить, какие управляющие клавиши были нажаты совместно с нажатием нашей клавиши. Тип TShiftState это множество, состоящее из одного или нескольких следующих значений:
TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);
Присутствие во множестве TShiftState соответствующих значений имеет следующий смысл:
- ssShift - была нажата управляющая клавиша Shift;
- ssAlt - была нажата управляющая клавиша Alt;
- ssCtrl - была нажата управляющая клавиша Ctrl;
- ssLeft - была нажата левая кнопка мышки;
- ssRight - была нажата правая кнопка мышки;
- ssMiddle - была нажата средняя кнопка мышки;
- ssDouble - были нажаты и левая и правая кнопки мышки.
Читайте также:
- Событие OnSelectCell компонента StringGrid