Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

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
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Использование DevExpress (часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru