hi,
I have a AdvStringGrid with the first column and row fixed, because the column should be used with check boxes, the row with FilterEdit. I want to be able to filter for values per column and then check all interesting rows to process them further. To make user's life easier, I want the "check all" functionality as well.
This seems to work well if no filter is applied, but if I apply one "check all" is not able to check all anymore, but only a subset of the rows. It looks like some index problem between visible and all available rows to me, because the rows at the end are always not checked. If no filter is applied and all rows are checked, then a filter is applied and "check all" is used to uncheck, only the first some rows are unchecked as well. So it's pretty clear that rows are not forcefully unchecked or such, I guess they are simply not reached at all.
Try with the following code and searching for 0 or 1 in the first column:
AdvStringGrid3->FilterEdit->Enabled = true;
AdvStringGrid3->MouseActions->CheckAllCheck = true;
AdvStringGrid3->Options << goEditing;
AdvStringGrid3->AddCheckBoxColumn(0);
AdvStringGrid3->RandomFill(false);
int firstRowIdx = AdvStringGrid3->FixedRows;
int maxRowsCnt = AdvStringGrid3->RowCount;
int contentColIdx = AdvStringGrid3->FixedCols;
for (int i = firstRowIdx; i < maxRowsCnt; ++i)
{
AdvStringGrid3->Cells[contentColIdx] = ((i + 1) % 2);
}