Posting updated code to make this work as I expected...
procedure TNxCustomGrid6.SelectNone(DelayedRefresh: Boolean);
var
i: Integer;
begin
if gtMultiSelected in FState then begin
try
if DelayedRefresh then BeginUpdate([]);
for i := 0 to Pred(RowCount)
do Selected[i] := False;
Exclude(FState, gtMultiSelected);
finally
if DelayedRefresh then EndUpdate;
end;
end
// BEGIN_CODE_UPDATE czbird@2017-10-05 added this so that it works also when just 1 row is selected
else
if FSelectedRow <> -1 then Selected[FSelectedRow] := False;
// END_CODE_UPDATE
FSelectedCol := -1;
FSelectedRow := -1;
end;