cxGrid новая запись в последнем поле Enter - PullRequest
1 голос
/ 22 января 2011

Я изо всех сил пытаюсь создать TcxGrid для добавления новой записи всякий раз, когда пользователь нажимает клавишу Enter в последнем поле текущей записи, однако я не нашел ни одного свойства, которое могло бы помочь мне достичь этого.

Я попытался установить событие OnKeyDown представления сетки (TcxGridDBTableView) со следующим кодом

if Key = VK_RETURN then
  if PaymentViewBetragNetto.Focused then
    PaymentView.DataController.AppendRecord;

, однако код по какой-то причине не выполняется ...

Любая идея о том, какдобавить запись в последнее поле. Событие OnEnter будет высоко оценено.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 22 января 2011

Почему бы не просто:

View.OptionBehavior.FocusFirstCellOnNewRecord = True, 
View.OptionBehavior.GotoNextCellOnEnter = True, 
View.OptionData.Appending = True
0 голосов
/ 22 января 2011

Кажется, что способ решить эту проблему - установить OnEditKeyDown / Up / Press вида сетки для обработки этого типа функциональности, поэтому:

procedure XXX.PaymentViewEditKeyUp(Sender: TcxCustomGridTableView;
  AItem: TcxCustomGridTableItem; AEdit: TcxCustomEdit; var Key: Word;
  Shift: TShiftState);
begin
  if Key = VK_RETURN then
    if PaymentViewBetragNetto.Focused then begin
      ADataModule.ATable.Append;
      PaymentViewAccount.FocusWithSelection;
    end; // if PaymentViewBetragNetto.Focused then begin
end;
...