DBAdvGrid flickering

Good afternoon again,

in the same grid as last message (120 colums but only 10 displayed) there is, if i miss some setting, a flickering problem when i move the grid position with the mouse.

In this case all the dataset field are displayed before the grid return to display only the 10 fields defined

To reproduce this:

Set the DBgrid colcount with a numer lower than the table fields

Go to the last colum or take care to scroll the grid (one field have to scroll i order to show the last column or another field that was hidden due to grid withd).

Point somewhere in the grid with the mouse (in my case i have rowselect set to true) and while press the mouse left button move up/down.

Now until the mouse move is end, the grid is "flashing".

If the arrows are used, all works fine.

Heve i missed some setting ?



Thank's again



Regars



Daniele

Can you try to set grid.Navigation.KeepHorizScroll = true to see if this helps?

Hi Bruno,

the   grid.Navigation.KeepHorizScroll = true is already setted and does not help.



I tried with another table (just few columns) but i all the columns are not visible (after changing the grid graphic) and the grid is scrolled, the problem persist.



Thank's for all



Daniele

Can you reproduce this with any of our demos or transform any of our demos to reproduce this issue and provide us details so we can reproduce this here and investigate it, as so far, we have been unable to see an issue here.

Hi Bruno,

in order to reproduce try this on your demo project ADOEditing



In your project just add in form create



dbadvgrid1.ColCount:=6;

dbadvgrid1.Columns[1].Header:='Marca';

dbadvgrid1.Columns[1].FieldName:='Brand';

dbadvgrid1.Columns[1].HeaderFont.Style:=[fsBold];



In the form adjust the grid width in order to show only 3 or 4 fileds.

dbadvgrid1.option set as

[goFixedVertLine,goFixedHorzLine,goVertLine,goHorzLine,goRowSelect]



and

dbadvgrid1.Navigation set all false except KeepHorizScroll:=True



Run, scroll the fileds grid in order to hide the first field, point the mouse cursor in the grid push left button and while is pressed scroll up/dow.

Now, in my pc, the grid's flikering



Thank's for all



Daniele



I cannot reproduce this, although what you say with:  "point the mouse cursor in the grid push left button and while is pressed scroll up/dow." is not entirely clear to me. How can I scroll while the mouse is pressed in the grid? The scrolling only happens when I click on the scrollbar. When I click the scrollbar, I see no flickering here.

Hi Bruno,

the meaning of

"point the mouse cursor in the grid push left button and while is pressed scroll up/dow."

is to "simulate" the grid rows selection.

Due the fact that goRangeSelect is false and goRowSelect is true, in this case the grid cursor is moving according to mouse direction.

Is in this situation that j have the grid filckering. (if j use cursor key or scroll bar, ther is no flickering).



I think that could be a setting problem.



Thank's for all



Daniele

Hi Bruno,

according to grid setting described in previous message, the flickering happend only if goRowSelect is true.



Regards



Daniele

Did you try to set grid.DoubleBuffered := true?

Yes Bruno i did, flickering still persist.





I'm sorry, but with doublebuffered = true, I can't see flickering.

Hi Bruno,

this is not a ver well solution .... but to resolve this problem on my pc i setted the KeepHorizScroll, under Navigation options, to False.



Thank's for help



Regard



Daniele

Same problem with custom component derived from TDBAdvGrid. It seems problems is related to KeepHorizScroll = true. The condition for this bug to appear is to have horizontal scrollbar scrolled so that at least one column on the left is not visible. You have to defined many columns (at least 20 - 30) so that not all can be displayed on the screen and horizontal scrollbar will be visible. If I click somewhere in the grid, grid redraw itself, but in the fraction of second it is redraw second time. After first redraw column content is shifted as if the first visible column is column number 1. So for example in column 4 I see content of column 1. But this is only for very short time and it is immediately repainted with correct data.

Did you try to set DoubleBuffered = true?

Is there any event handler involved in the drawing of cells that might be resource intensive?