Компонент Delphi StringGrid









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




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




StringGrid Delphi

Событие OnClick




   Событие OnClick компонента StringGrid Delphi происходит в момент щелчка по компоненту StringGrid. Обработчик события щелчка мыши по компоненту может содержать реакцию программы на щелчок пользователем по таблице.

   Событие OnClick относится ко всему компоненту StringGrid, безотносительно к ячейке таблицы, по которой происходит щелчок. Однако, поскольку при щелчке по компоненту StringGrid происходит перемещение фокуса ввода на выбранную ячейку, то в обработчике этого события можно запрограммировать соответстующую реакцию таблицы на выбор той или иной ячейки.

   Для этого нужно знать, по какой именно ячейке произошёл щелчок. Естественно, ячейка после щелчка становится выбранной (если это не ячейка фиксированной зоны), и информация о её координатах содержится в свойствах

   SringGrid.Col - столбец;
   SringGrid.Row - строка.

   А как узнать координаты ячейки, если это ячейка именно фиксированной зоны таблицы? Для этого нужно знать координаты самого щелчка в пикселах. К сожалению, обработчик события OnClick не предоставляет данную информацию.

   Для получения координат щелчка придётся воспользоваться обработчиками событий OnMouseDown или OnMouseUp. Однако, поскольку событие OnClick происходит раньше чем даже OnMouseDown, в обработчике события OnClick информация о координатах щелчка недоступна.

   Единственный параметр, содержащийся в обработчике события OnClick - это Sender, содержащий имя компонента - источника события. То есть, если на Форме несколько компонентов StringGrid, они могут управляться одним обработчиком события OnClick:

procedure TForm1.StringGrid1Click(Sender: TObject);
begin
//Анализ компонента-источника
if Sender = StringGrid1
  then Caption:='StringGrid1'
  else Caption:='StringGrid2';
//Обращение к источнику как к таблице
(Sender as TStringGrid).Cells[1, 1]:='Здесь';
end;

Для этого необходимо сопоставить обработчику второй таблицы обработчик первой таблицы. Нужно в Инспекторе Объектов второй таблицы открыть список доступных обработчиков для события OnClick и выбрать StringGrid1Click.


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

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

    Карта сайта