Accept and CanLeave are in this order in the method signatures where they're declared and implemented.
TNxAcceptEditEvent = procedure (Sender: TObject; ACol, ARow: Integer; var Text: WideString; var Accept: Boolean; var CanLeave: Boolean) of object;
procedure DoAcceptEdit(ACol, ARow: Integer; var Text: WideString; var Accept: Boolean; var CanLeave: Boolean); dynamic;
procedure TNxCustomGrid6.DoAcceptEdit(ACol, ARow: Integer; var Text: WideString; var Accept, CanLeave: Boolean); begin if Assigned(FOnAcceptEdit) then FOnAcceptEdit(Self, ACol, ARow, Text, Accept, CanLeave); end;
However, there are a couple places where DoAcceptEdit is called and the order of Accept and CanLeave are reversed. I've fixed this in my code, but I imagine this is a bug that others might be experiencing as well.
DoAcceptEdit( FEditingCell.X, -1, Text, FCanLeaveEdit, Result ); // NxCustomGrid6.pas (645)
...
DoAcceptEdit( FEditingCell.X, FEditingCell.Y, Text, FCanLeaveEdit, Result ); // NxCustomGrid6.pas (673)
Thanks!