Since upgrading to TMS Component Pack 18.104.22.168 (from version 4.5), we have a different behaviour in TDBAdvGrid.
Here is our grid options:
Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goDrawFocusSelected, goColSizing, goRowSelect, goThumbTracking]
MouseActions.DisjunctRowSelect = True
* notice that goRangeSelect is false
The grids are showing data from opened datasets.
Scenario 1 (clicking a cell)
Result: The arrow indicator moves to the clicked row. The entire row is selected and the row becomes blue because it is selected.
Scenario 2 (holding down the left mouse button and moving the corsor inside the grid)
Result: Everytime the cursor reaches a different row, this row becomes selected and the old row is unselected. The current row becomes blue because it is selected. The old row becomes white (not selected)
Scenario 3 (we hold ctrl and click cells to select multiple rows)
Result: Every row that we click on becomes selected (each row is blue)
Scenario 1 (clicking a cell)
Result: The arrow indicator moves to the clicked row. However the row isn't blue. We need to click the same row a second time for it to become blue.
Scenario 2 (holding down the left mouse button and moving the cursor inside the grid)
Result: Everytime the cursor reaches a different row, this row becomes selected and the old rows are also still selected. We end up with multiple rows being selected. The last selected row isn't blue because of what I described in scenario 1.
Scenario 3 (we hold ctrl and select to select multiple rows)
Result: Every row that we click on becomes selected (each row is blue) * this one is still working properly except that whats I described in scenario 1 is still happening here.
I can get around the scenario 1 issue by removing MouseActions.DisjunctRowSelect. However I need this functionnality.
Are you able to tell me if the new behavior is a bug? Is there some mix of options I can use to get back the old bahaviors?
After searching the forum, I found a way to get around my problem using the ADOSelection demo.
However I don't understand why I need to click on a row twice to get the selection color to appear on it.
Is there a way around this issue or is it by design?
We'll investigate this.
Was your test based on setting DBAdvGrid.PageMode = false?
PageMode is True.
When it's PageMode is False we do not need to click a row twice for it to appear selected.
I have retested this on the demo ADOEditing where goRowSelect = true and goRangeSelect = false in grid.Options an grid.MouseActions.DisjunctRowSelect = true but I could not reproduce the mentioned behavior. What's different in your app?
I can easilly reproduce the problem using the ADOSelection demo.
#1 Add the DisjunctRowSelect to the MouseActions.
Notice how only the focus rectangle will appear the first time you click a cell.
#2 Now add the GoRowSelect to the grid options.
Notice how you need to click a cell twice for the row to appear as being selected (the data indicator arrow moves on the first click though).
I am using Delphi 7.
I cannot reproduce this. Do you use the latest version of TDBAdvGrid?
I have TDBAdvGrid version 22.214.171.124from TMS Componnent Pack 126.96.36.199
That is strange, was retested here with this latest version and the behavior is as expected. Single click selects/unselects a row.
Do you have some place I could upload the modified test project?
This way we could be certain the right options are set to reproduce the issue.