Mic777
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору procedure TfrDI_InputTable.InputGridTableViewKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (Key = VK_INSERT) then Key := 0 else if (Key = VK_DELETE) and (ssCtrl in Shift) and not ReadOnly then begin DeleteRowFromTable; Key := 0; end else if (Key in [VK_TAB, VK_RETURN]) then begin if Shift = [] then begin if (not FindNextEditingCell(mdForward)) and (not Assigned(FNavigatorFrame) or not (FNavigatorFrame.EndOfPart and FNavigatorFrame.EndOfTable)) then SendMessageChangeCurrentTable(VK_NEXT); end else if ssShift in Shift then begin if (not FindNextEditingCell(mdBack)) and (not Assigned(FNavigatorFrame) or not (FNavigatorFrame.BeginOfPart and FNavigatorFrame.BeginOfTable)) then begin SendMessageChangeCurrentTable(VK_PRIOR); SetFocusLastEditingCell; end; end; Key := 0; end else if Key in [VK_UP, VK_DOWN] then begin case Key of VK_UP : GotoNextEditingCellInColumn(InputGridTableView.Controller.FocusedRowIndex, mdBack); VK_DOWN : GotoNextEditingCellInColumn(InputGridTableView.Controller.FocusedRowIndex, mdForward); end; Key := 0; end else if (Key in [VK_PRIOR, VK_NEXT]) and (ssCtrl in Shift) then begin case Key of // Ищем первую разрешенную для редактирования ячейку от первой строки, // поэтому направление вперед VK_PRIOR : GotoNextEditingCellInColumn(NotAssigned, mdForward); // Ищем первую разрешенную для редактирования ячейку от последней строки, // поэтому направление назад VK_NEXT : GotoNextEditingCellInColumn(InputGridTableView.DataController.RowCount, mdBack); end; Key := 0; end else if (Key in [VK_LEFT, VK_HOME, VK_RIGHT, VK_END]) and not(InputGridTableView.Controller.FocusedColumn.Editing) then begin case Key of VK_LEFT : GotoNextEditingCellInRow(InputGridTableView.Controller.FocusedColumn.VisibleIndex, mdBack); VK_HOME : GotoNextEditingCellInRow(NotAssigned, mdForward); VK_RIGHT : GotoNextEditingCellInRow(InputGridTableView.Controller.FocusedColumn.VisibleIndex, mdForward); VK_END : GotoNextEditingCellInRow(InputGridTableView.VisibleColumnCount, mdBack); end; Key:=0; end; end; | Всего записей: 90 | Зарегистр. 15-12-2005 | Отправлено: 16:00 01-04-2015 | Исправлено: Mic777, 16:15 01-04-2015 |
|