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?