Show quoted text 15 lines
At 14:21 18-11-2002 -0600, Tony Maro wrote:
>On Mon, 2002-11-18 at 11:59, Mattias Gaertner wrote:
> > On 18 Nov 2002 11:45:02 -0600
> > Tony Maro wrote:
> > >
> > > Actually, Ctrl+Mouse would do this in D4. Or was it shift? Now I'm
> > > confused. I know it wasn't Ctrl+Shift though.
>
>But, just for the sake of Lazarus, when I get home I'll try to remember
>to reboot and test this in Delphi 4 to see exactly what keys do what for
>multi-select.
I knew it was the opposite of what I think is logic, so I just checked it.
It's Shift + Mouse
It seems, the selection handling needs some talk.
Because most users expects Delphi(TM) handling, I implemented it very Delphish. The Delphi way is IMO sufficient but not very comfortable, therefore there are some differences.
Delphi's selection tool:
Mouse down without any key on a component:
- If the pointed component was selected
then keep current selection
else select only the pointed component
- On Drag: Move selection
Mouse down without any key on the form:
- selects only the form
- On Drag: rubberband selection of form childs
Mouse down with Shift key on a component:
- add/remove component to/from selection (= xor selection)
- On Drag: nothing
Mouse down with Shift key on the form:
- Delphi: nothing
- On Drag: same as without Shift
Mouse down with Ctrl key on a component:
- select form
- On Drag: rubberband select of childs of
pointed component
Mouse down with Ctrl key on the form:
same as on a component
Ctrl+Shift is the same as Shift.
So, in general there are 5 cases.
Lazarus:
The rubberband is activated, when the mouse is moved and it is not a 'move selection'.
- The rubberband selects not only childs but also grand childs.
- The Shift key is always: xor selection
- The Ctrl key always means: only selects/unselects childs of pointed component
(I just repaired this, so update before you test this)
This is pretty much the same as under Delphi, but IMO more comfortable. For example:
Selecting the child components of two groupboxes:
Delphi: Shift + click, click, click, click, ...
Lazarus: 2 times Ctrl+Shift+Drag
Of course, we can add options:
- one option to switch Ctrl/Shift key
- one option, so that the rubberband does not select grand childs
- one option, so that the rubberband only selects components completely covered
Mattias