Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 10 total
Thread Dragging a form out of the viewport
Tue, Sep 8 2015 7:47 AMPermanent Link

Rick

I would like to ensure that a movable TDialog is always accessible
regardless of where it is positioned in the viewport but I'm not sure
how to get it to work correctly.

A simple application containing a single TDialog allows me to drag the
form up past the top boundary until the caption bar is no longer
viewable in the display area. Releasing the mouse leaves the form where
it is and it can no longer be dragged back into full view because the
caption bar isn't showing.

In the form's OnCreate event the following can be specified:

Application.Surface.ScrollBars:=sbBoth;

which will show scroll bars if the form is dragged past the right or
bottom browser boundaries. No scroll bars are displayed if the form is
dragged up past the browser's top boundary (or to the left). The
original problem remains.

I've also noticed strange behavior when the surface scroll bars are
turned on and the form dragged past the bottom boundary and then
released. If the vertical scroll bar is moved all the way down and the
form dragged back up the form seems to stay where it is whilst the mouse
moves off of the caption bar and up the screen. The vertical scroll bar
shrinks in size but the form and mouse no longer appear to be connected.

I've also tried working with the Application.Viewport.OverFlowX and
OverFlowY properties but they don't seem to help.

Anyone know how to properly handle movable form accessibility?

--
Rick
Tue, Sep 8 2015 8:50 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Rick,

<< I would like to ensure that a movable TDialog is always accessible regardless of where it is positioned in the viewport but I'm not sure how to get it to work correctly. >>

You can't, at least not right now.

<< I've also noticed strange behavior when the surface scroll bars are turned on and the form dragged past the bottom boundary and then released. If the vertical scroll bar is moved all the way down and the form dragged back up the form seems to stay where it is whilst the mouse moves off of the caption bar and up the screen. The vertical scroll bar shrinks in size but the form and mouse no longer appear to be connected. >>

This is normal behavior if the control that you're moving is the control responsible for the scrolling.  There is no way to "freeze" the mouse positioning or the scrolling, so you end up with the behavior that you see.

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Sep 8 2015 9:08 AMPermanent Link

Rick

On 08/09/15 22:50, Tim Young [Elevate Software] wrote:
> << I would like to ensure that a movable TDialog is always accessible regardless of where it is positioned in the viewport but I'm not sure how to get it to work correctly. >>
>
> You can't, at least not right now.
>
>

Tim, does this mean that a future release will provide some sort of
movement constraints to keep the caption bar accessible? If so, what
sort of behavior do you envisage?

--
Rick
Wed, Sep 9 2015 10:15 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Rick,

<< Tim, does this mean that a future release will provide some sort of movement constraints to keep the caption bar accessible? >>

If you're requesting that behavior, then sure. Smile

<< If so, what sort of behavior do you envisage? >>

Probably along the lines of what EWB 1.x did - 0, 0 to Container.Right-Control.Width, Container.Bottom-Control.Height.

Tim Young
Elevate Software
www.elevatesoft.com
Wed, Sep 9 2015 6:10 PMPermanent Link

Rick

On 10/09/15 00:15, Tim Young [Elevate Software] wrote:
> << Tim, does this mean that a future release will provide some sort of movement constraints to keep the caption bar accessible? >>
>
> If you're requesting that behavior, then sure. Smile
>
> << If so, what sort of behavior do you envisage? >>
>
> Probably along the lines of what EWB 1.x did - 0, 0 to Container.Right-Control.Width, Container.Bottom-Control.Height.
>

Yes please, movement constraints would be useful - anything to reduce
user support calls!

EWB2 provides constraint properties for width and height so might be
worthwhile including min/max top and left in there as well. Could be of
value to limit where a control can be moved within its parent.

Thanks.

--
Rick
Fri, Sep 11 2015 9:06 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Rick,

<< EWB2 provides constraint properties for width and height so might be worthwhile including min/max top and left in there as well. Could be of value to limit where a control can be moved within its parent. >>

That may be a little more involved, but it depends.  The layout management is pretty complex right now, so I try not to touch it very often. Smile

Tim Young
Elevate Software
www.elevatesoft.com
Fri, Sep 11 2015 6:53 PMPermanent Link

Rick

On 11/09/15 23:06, Tim Young [Elevate Software] wrote:
> << EWB2 provides constraint properties for width and height so might be worthwhile including min/max top and left in there as well. Could be of value to limit where a control can be moved within its parent. >>
>
> That may be a little more involved, but it depends.  The layout management is pretty complex right now, so I try not to touch it very often. Smile
>

Fair enough, but I'm not sure that I want a control to be limited to 0,0
only. There may be occasion when moving it negative could be useful.

Any way that you can activate scroll bars (if enabled for the surface)
if the form is moved above the top of the parent control?

--
Rick
Sat, Sep 12 2015 7:33 AMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Rick,

<< Any way that you can activate scroll bars (if enabled for the surface) if the form is moved above the top of the parent control? >>

That's not how scrolling works.

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Sep 14 2015 7:22 PMPermanent Link

Rick

On 12/09/15 21:33, Tim Young [Elevate Software] wrote:
> << Any way that you can activate scroll bars (if enabled for the surface) if the form is moved above the top of the parent control? >>
>
> That's not how scrolling works.

Well then, scrolling is broken Smile

No worries, I just used the OnMove event to limit movement.

Probably better to leave positioning as is for flexibility.

--
Rick
Thu, Jun 16 2016 5:38 AMPermanent Link

Matthew Jones

Rick wrote:

I would like to ensure that a movable TDialog is always accessible
regardless of where it is positioned in the viewport but I'm not sure
how to get it to work correctly.

A simple application containing a single TDialog allows me to drag the
form up past the top boundary until the caption bar is no longer
viewable in the display area. Releasing the mouse leaves the form where
it is and it can no longer be dragged back into full view because the
caption bar isn't showing.

--------

I just fell over this one too - the default for a TDialog allows me to drag it down past the bottom of the browser and when I let go the form is invisible and there is no way to get to it. Pressing Cancel didn't, even though there is a button that is the cancel default, and OK was not enabled as I hadn't entered text. The only way a user would be able to fix would probably be F5 to throw it away.

I think a default mechanism to not allow the form outside of the visible area makes sense. My solution will be to turn off moving, but that restricts the benefit of moving at all.
Image