Subject TIB_GRID, OnGetCellProps and BufferFields
Author russellbelding
Using IBO4.3Aa, D6, FB 1.5.

In TIB_GRID the onGetCellProps event handler allows me to set the
background color and the font color for each column in the grid. I am
using this event handler to set these colors depending on field data
in the current row. The grid data comes from a TIB_Query, myQuery.
The event handler is called with column and row numbers ACol and ARow
where ARow is the row number of a visible row. To examine the data in
the row when the event handler is called I must use
myQuery.BufferFieldsByName(myFieldName).asWhatever (*)
to examine the data field of the current row. The grid has
FixedDataCols fixed data columns set in the published grid properties.
The data returned by (*) in the event handler is for the current row
for those columns numbered by Acol (FixedDataCols+2) and greater but
contains the data for the previous row for columns 1,2,...
(FixedDataCols+1). This is the source of my problem.

I have made the following changes to IB_GRID.PAS

{ Methods }
{start changes by russell}
function PublicColWidths(I:integer):integer;
procedure PublicColWidthsChanged;
{end changes by russell}

{start changes by russell}
function TIB_CustomGrid.PublicColWidths(I:integer): integer;
begin
Result := colWidths[I];
end;

procedure TIB_CustomGrid.PublicColWidthsChanged;
begin
ColWidthsChanged;
end;
{end changes by russell}

I would have backed out these changes and then tested but the changes
required to my code after backing out theses changes to IB_GRID.PAS
are many, and I am guessing these changes have not upset the code in
IB_GRID.PAS.

So I am submitting my problem here in the hope of saving time.

Is the behaviour of BufferFieldsByName(..) descibed above intended?
If not how can it be changed? If correct how can I get the correct
data for low numbered columns in the event handler?

Thanks for any help.

Russell Belding