Subject Re: Grid multi-select behaviour
Author DanyM
--- In IBObjects@yahoogroups.com, "Jason Wharton" <supportlist@...> wrote:
>
> Dany,
>
> > I would like to think that calling
> >
> > procedure TIB_BDataset.SelectAll( State: boolean );
> >
> > with false for the argument will deselect all selected records.
> >
> > like so;
> >
> > myIBOQuery.SelectAll(false);
> >
> > I also believe that this could be done in some scroll event. I vaguely
> > remember that the TIB_Grid scrolls the dataset when rows are clicked w/o
> > Ctrl or Shift.
> >
> > Take care if you implement multiselect in a child (detail). Even though
> > the master has scrolled, the records selected for a different master will
> > remain selected (IMO a very neat thing if handled with some care - the
> > user will not be able to see the selected records for the non current
> > master so one must implement some other means of indication, perhaps
> > outside the grid). I think you should be able to find an event (either at
> > the master or the detail) to call SelectAll(false) when the master scrolls
> > as well.
>
> This is all feasible with IBO.
>
> One questions first. Are you saying that Calling SelectAll( false ) is not
> working?
>

Jason, sorry for the delay.

I don't fire up the yahoogroup very often, and the thread got hidden under another topic.

No, I'm definitely not saying that things are not working as they should :) IMO it is up to you to decide.

I can confirm this though;

I fire up my older (IBO native) app and select two records from a detail, then navigate to another master and select two more records. When navigating back and forth IBO remembers the four selected records.

Then I have a command "Unselect all rows" that calls detailDS.SelectAll(false) and that will "only" unselect the two rows of the current master record. When navigating to the other master with selected details they are still selected (two rows in total by now). I always assumed this was by design and catered for it.

IMO when calling SelectAll(true) on a detail the most logic thing is to select the "visible" records (?). Thus, SelectAll(false) should do the same. But I never used SelectAll(true) on a detail, so I can not confirm the behaviour there.

Regards,

/Dany