Repaint problems?


After I add a new record to my DataSet (using a form) I get this:

A free space is created and I must click each cell to see the data. But even then I get this when trying to export those data:

Last row duplicates itself 6-7 times.. How to fix this?

Using TDBAdvGrid, C++ Builder 2010, Win7 x64.

Can you try to set grid.DataSetType = dtNonSequenced?

Setting grid.DataSetType to dsNonSequenced gives other scrolling problems. And the scrollbar is only limited to three positions and many customers have complained about that in the past.

This behavior is caused by the dataset. 
When grid.PageMode = true and DataSetType = dtNonSequenced
the grid only displays a buffer of visible records, the grid has no information at all where this buffer is positioned
in the database except that it is the first buffer, last buffer or not the first or last buffer. Hence, there are only 3
possible scrollbar positions. 
When you set grid.PageMode = false, the grid loads & shows all records and can thus show an exact scrollbar position.

I now noticed what goes wrong: if I enable the search footer bar, and I
press (in the scrollbar the button down at the bottom of the scrollbar),
the row moves to the line that is hidden below the search footer. It
then immediatly scrolls one line up to prevent hiding the selected row,
and then then a empty row is painted above the selected row. If I then
click ont the empty cells, they are repainted.

We have retested this with our latest version but we could not see such problem here.
Could you please provide some sample source project ( by email) with which we can reproduce this here ?

I had a similar problem with this grid. When I deleted a record, the grid would not always be updated. The solution was to refresh the dataset - and since I used a TQuery, this involved doing a Close() and then Open() on the TQuery object.

TDBAdvGrid.Version =
TDBAdvGrid.PageMode = True
TDBAdvGrid.DataSetType = dtSequenced

PS. Setting PageMode = False caused other problems.

If you use these type of operations, you might have to set TDBAdvGrid.RefreshOnInsert /RefreshOnDelete = true