TDbAdvGrid .ColumnByFieldName[].DisplayIndex if columns in the grid are hidden at runtime

The Displayindex has an unexpected value
The DbAdvGrid has 5 fields. field1, field2, field3, field4, field5
In the OnCreate oft he form the field3 ist set to hidden: HideColumn(DbAdvGrid.ColumnByFieldName[field3].Index)

In the DbAdvGrid GridHint event I wan‘t to show a hint for the field5.
I check aCol against DbAdvGrid.ColumnByFieldName[field5].Index but this do not work.
When i move the cursor to then column of field5 aCol is 3, that‘s ok because the field3 is hidden.
But every index of DbAdvGrid.ColumnByFieldName[field5] is 4.
I would expect that DbAdvGrid.ColumnByFieldName[field5].Displayindex is 3.

What’s wrong? What do i have to do if i want to compare ColumnByFieldName with aCol if columns are hidden?

I retested this with the demo under Demo\DBAdvGrid\ADOEditing with following code added in the FormCreate event:

procedure TForm1.FormCreate(Sender: TObject);
  adotable1.Active := false;
  adotable1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=.\cars.mdb;Persist Security Info=False';
  adotable1.TableName := 'Cars';
  adotable1.Active := true;

  dbadvgrid1.FloatingFooter.Visible := true;
  dbadvgrid1.FloatingFooter.ColumnCalc[4] := acSum;
  dbadvgrid1.FloatingFooter.ColumnCalc[5] := acAvg;
  dbadvgrid1.FloatingFooter.ColumnCalc[6] := acMin;
 // added code
  DBAdvGrid1.ShowHint := true;

and the OnGridHint event handler:

procedure TForm1.DBAdvGrid1GridHint(Sender: TObject; ARow, ACol: Integer;
  var hintstr: string);
  rcol: integer;
  rcol := DBAdvGrid1.RealColIndex(acol);
  hintstr := Acol.ToString+':'+ dbadvgrid1.Columns[rcol].FieldName;

and this shows always the correct field in the hint when hovering over cells.