Just a small suggestion to make the ColumnByHeader function in AdvGrid.pas work a little better.
So that columns can still be found if they have a different case, use SameText for the comparison.
if AllCells[i,0] = AValue then
becomes:
if SameText(AllCells[i,0], AValue) then
I needed this so excel files imported into a grid could have the headers parsed for certain named columns. This means the column will be found even if it's of different case in the excel file.