You have set the grid to AdvanceInsert=true and AdvanceOnEnter=true.
If the first column is fixed=true, the program goes down in stack overflow.
If the last column is fixed=true and width=0, no row is created.
If the last column is fixed=false, two rows are created.
If you set the first column to fixed=false, the last fixed=true, and width=1, only one row is generated at the end, but if you enter in the last column of the row instead of the last row, the row is created.
This version will continue to have bugs.
I assume you refer here to TAdvColumnGrid?
If not, what exact grid is referred to and how is it setup to make the first column fixed as I could not see both with TAdvColumnGrid & TAdvStringGrid a stackoverflow.
Test setup on default TAdvColumnGrid:
AdvColumnGrid1.Navigation.AdvanceInsert := true;
AdvColumnGrid1.Navigation.AdvanceOnEnter := true;
AdvColumnGrid1.Options := AdvColumnGrid1.Options + [goEditing];
AdvColumnGrid1.Columns[0].Fixed := true;
// tested with & without these extra settings
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Fixed := true;
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Width := 0;
The result of the setup.
AdvColumnGrid1.Navigation.AdvanceInsert := true;
AdvColumnGrid1.Navigation.AdvanceOnEnter := true;
AdvColumnGrid1.Options := AdvColumnGrid1.Options + [goEditing];
AdvColumnGrid1.Columns[0].Fixed := true;
The result of the setup.
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Fixed := true;
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Width := 0;
The row is not created.
The result of the setup.
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Fixed := true;
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Width := 1;
The row is created.
However, if you type enter in the row instead of the last row, the row is created at the end.
The result of the setup.
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Fixed := false;
AdvColumnGrid1.Columns[AdvColumnGrid1.Columns.Count - 1].Width := 0 or 1;
Two rows are created each.
The result of the setup.
RowCount-2, RowCount-1 both create a new row.
The symptoms are the same in all states.
The result of the setup.
AdvColumnGrid1.Columns[0].Fixed := false;
The cursor moves to the last row.
The result of the setup.
AdvColumnGrid1.Columns[0].Fixed := true;
If you type enter in RowCount-1, AdvColumnGrid1.Columns.Count -1, the cursor does not move to the last row after row creation.
If you type enter in RowCount-2, AdvColumnGrid1.Columns.Count-1, stack overflow occurs.