Question

Je me bats pour faire un TcxGrid pour ajouter un nouveau record à chaque fois que l'utilisateur appuie sur la touche Entrée sur le dernier champ de l'enregistrement en cours, mais je ne trouve pas un bien qui pourrait me aider à y parvenir.

J'ai essayé de placer l'événement OnKeyDown de la vue grille (TcxGridDBTableView), avec le code suivant

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

mais le code n'est pas exécuté pour une raison ...

Toute idée sur la façon d'ajouter des enregistrement sur le dernier champ OnEnter événement serait très apprécié.

Merci.

Était-ce utile?

La solution

Pourquoi ne pas simple:

View.OptionBehavior.FocusFirstCellOnNewRecord = True, 
View.OptionBehavior.GotoNextCellOnEnter = True, 
View.OptionData.Appending = True

Autres conseils

Il semble que la façon de résoudre ce problème est de définir le OnEditKeyDown / Up / Presse de la vue de la grille afin de gérer ce type de fonctionnalité, donc:

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;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top