Компонент Delphi StringGrid









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




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




StringGrid Delphi

Событие OnMouseDown




   Событие OnMouseDown компонента StringGrid Delphi происходит при нажатии клавиши мыши. Причём событие OnMouseDown вызывается при нажатии любой клавиши, левой, правой или средней. Событие OnMouseDown происходит в нижнем положении клавиши, непосредственно в момент нажатия.

   Определить, какая именно клавиша была нажата и параметры нажатия, помогут встроенные переменные обработчика события. Обработчик события OnMouseDown имеет следующий вид:

procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin

end;

   Параметр Button имеет тип:

TMouseButton = (mbLeft, mbRight, mbMiddle);

  • mbLeft - была нажата левая клавиша мыши;
  • mbRight - была нажата правая клавиша мыши;
  • mbMiddle - была нажата средняя клавиша мыши.


   Параметр Shift имеет тип:

TShiftState = set of (ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble);

   Это множество, содержащее одно или несколько следующих значений:

  • ssShift - нажата клавиша Shift;
  • ssAlt - нажата клавиша Alt;
  • ssCtrl - нажата клавиша Ctrl;
  • ssLeft - нажата левая клавиша мыши;
  • ssRight - нажата правая клавиша мыши;
  • ssMiddle - нажата средняя клавиша мыши;
  • ssDouble - нажаты и правая и левая клавиши мыши.
   Видим, что и параметр Button и параметр Shift имеют одинаковык значения ssLeft, ssRight, ssMiddle. Однако в этих параметрах они имеют различный смысл.
   В параметре Button передаётся код клавиши, нажатой именно в данный момент, а в параметре Shift содержатся коды клавиш, нажатых и ранее.
   Например, если вначале была нажата левая кнопка мыши, а затем правая, то код правой клавиши передастся в параметре Button, а в параметре Shift и код правой и код левой клавиши.

   Параметры X и Y это координаты курсора в момент нажатия клавиши мыши, отсчитываемые от точки (StringGrid.Left, StringGrid.Top), то есть левый верхний угол таблицы имеет коодинаты (0, 0). Однако чаще нужно иметь не координаты курсора в пикселах, а ячейку, в которой находился курсор в момент нажатия. Определить адрес ячейки поможет функция

StringGrid.MouseToCell(X, Y, ACol, ARow);

где ACol - индекс столбца, ARow - индекс строки ячейки, в которой находился курсор в момент нажатия клавиши мыши.


Читайте также:
  • Событие OnSelectCell  компонента StringGrid

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

    Карта сайта