Hi Steve
This has always been the case. SelectedCount returns the number of rows that are currently selected in a multi-select situation. Even if SelectedCount is greater than zero, SelectedRow might still be -1.
Because of this, you should always check if the row indicated by SelectedRow actually exists before using it.
if NextGrid1.RowExist(NextGrid1.SelectedRow) then begin ... end;
After you've indicated which rows are selected (in multi-select environment) you should then also indicate which one of the selected rows is the "currently selected" row (there can be only one).
for I := 0 to NextGrid1.RowCount -1 do begin if I mod 2 = 0 then NextGrid1.Row[I].Selected := True; end; NextGrid1.SelectedRow := 4;