Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 10 of 10 total
Thread Problem with scrolling
Sun, Oct 18 2015 10:17 PMPermanent Link

A.Kyr

Hi to all,
I have the following problem:
Even if using the proposed code onshow event of my form:
--
   ViewPort.OverflowY:=otAuto;
   ViewPort.OverflowX:=otAuto;
   surface.Constraints.min.width:=(Self.width+40);
   surface.Constraints.min.height:=(Self.height+40);
--
the scrolling doesn't work in smartphone. But it works as expected in desktop browsers.
I would be grateful if somebody propose a solution as i believe that i miss something very simple Frown

For the time the only - problematic - workaround i found, is to put inside the form a TBrowser covering all the form area and having DisplayOrder=0 for not covering the other controls:
this way if i touch/drag somewhere in the NON covered by controls area of form, everything works as expected also in smartphone.

I have attached a very simple test case (with TBrowser in the background)

Thanks in advance

PS: EWB2.02b1 / Samsung GalaxyS  & IPhone



Attachments: EWB2_Test2_Appl.zip
Mon, Oct 19 2015 7:57 AMPermanent Link

Doc

Same problem here.
I'm waiting for a solution since this thread of mine:
http://www.elevatesoft.com/forums?action=view&category=ewb&id=ewb2_preview&msg=507&page=1

With 2.2 scolling by mouse wheel while cursor is over the form is broken again, this worked in former releases.
Mon, Oct 19 2015 5:57 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com


<< the scrolling doesn't work in smartphone. But it works as expected in desktop browsers. >>

This is a bug - a fix will be in 2.02 B2.  This is the fix, if you're interested:

WebForms interface:

  TSurface = class(TScrollableControl)
  {$ENDIF}
     private
        FClientElement: TElement;
        FModalCount: Integer;
        FModalOverlay: TModalOverlay;
        FProgressDialog: TProgressDialog;
        FProgressMessage: String;
        FProgressCount: Integer;
        function GetActiveForm: TFormControl;
        {$IFNDEF DESIGN}
        function GetBackground: TBackground;
        {$ENDIF}
     protected
        {$IFNDEF DESIGN}
        function GetInterfaceClassName: String; override;
        procedure InitializeProperties; override;
        function CreateElement: TElement; override;
        procedure CreateInterfaceElements; override;
        procedure FreeElement; override;
        function GetClientElement: TElement; override;
        {$ENDIF}
        function DoMouseWheel(WheelDelta: Integer; ShiftKey, CtrlKey, AltKey: Boolean; X,Y: Integer): Boolean; override;  <<<<<<<<<<<<<<<<<<<<<<<<<<<< Add
        function DoTouchScroll(X,Y: Integer): Boolean; override;  <<<<<<<<<<<<<<<<<<<<<<<<< Add

WebForms implementation:

function TSurface.DoMouseWheel(WheelDelta: Integer; ShiftKey, CtrlKey, AltKey: Boolean; X,Y: Integer): Boolean;
begin
  Result:=inherited DoMouseWheel(WheelDelta,ShiftKey,CtrlKey,AltKey,X,Y);
  if (not Result) and (Application.Viewport.OverflowY <> otHidden) then
     Result:=True;
end;

function TSurface.DoTouchScroll(X,Y: Integer): Boolean;
begin
  Result:=inherited DoTouchScroll(X,Y);
  if (not Result) and ((Application.Viewport.OverflowX <> otHidden) or (Application.Viewport.OverflowY <> otHidden)) then
     Result:=True;
end;

The bug only occurred with the scrolling of the *viewport*, not individual containers/controls within EWB.

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Oct 19 2015 5:59 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Doc,

<< I'm waiting for a solution since this thread of mine:
http://www.elevatesoft.com/forums?action=view&category=ewb&id=ewb2_preview&msg=507&page=1 >>

That's not actually true.  This bug is specific to 2.02, and is specific to the viewport scrolling.

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Oct 19 2015 6:18 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Actually, to prevent an error while compiling the component library, use this instead:

WebForms interface:

  TSurface = class(TScrollableControl)
  {$ENDIF}
     private
        FClientElement: TElement;
        FModalCount: Integer;
        FModalOverlay: TModalOverlay;
        FProgressDialog: TProgressDialog;
        FProgressMessage: String;
        FProgressCount: Integer;
        function GetActiveForm: TFormControl;
        {$IFNDEF DESIGN}
        function GetBackground: TBackground;
        {$ENDIF}
     protected
        {$IFNDEF DESIGN}
        function GetInterfaceClassName: String; override;
        procedure InitializeProperties; override;
        function CreateElement: TElement; override;
        procedure CreateInterfaceElements; override;
        procedure FreeElement; override;
        function GetClientElement: TElement; override;
        function DoMouseWheel(WheelDelta: Integer; ShiftKey, CtrlKey, AltKey: Boolean; X,Y: Integer): Boolean; override;  <<<<<<<<<<<<<<<<<<<<<<<<<<<< Add
        function DoTouchScroll(X,Y: Integer): Boolean; override;  <<<<<<<<<<<<<<<<<<<<<<<<< Add
        {$ENDIF} <<<<<<<  Move this to here from above the DoMouseWheel override

WebForms implementation:

function TSurface.DoMouseWheel(WheelDelta: Integer; ShiftKey, CtrlKey, AltKey: Boolean; X,Y: Integer): Boolean;
begin
  Result:=inherited DoMouseWheel(WheelDelta,ShiftKey,CtrlKey,AltKey,X,Y);
  if (not Result) and (Application.Viewport.OverflowY <> otHidden) then
     Result:=True;
end;

function TSurface.DoTouchScroll(X,Y: Integer): Boolean;
begin
  Result:=inherited DoTouchScroll(X,Y);
  if (not Result) and ((Application.Viewport.OverflowX <> otHidden) or (Application.Viewport.OverflowY <> otHidden)) then
     Result:=True;
end;
{$ENDIF}  <<<<<<<<<<<<<< Move this here from above the DoMouseWheel implementation

Tim Young
Elevate Software
www.elevatesoft.com
Mon, Oct 19 2015 8:49 PMPermanent Link

A.Kyr

Hi Tim.

Sorry but even after the proposed changes and rebuild of library, the problem remains.

Please try the patch yourself with the sent test case ( without the TBrowser in the form)

Regards
Tue, Oct 20 2015 3:15 AMPermanent Link

Doc

Tim Young [Elevate Software] wrote:
<< I'm waiting for a solution since this thread of mine:
http://www.elevatesoft.com/forums?action=view&category=ewb&id=ewb2_preview&msg=507&page=1 >>

That's not actually true.  This bug is specific to 2.02, and is specific to the viewport scrolling.
-------------------------------------------

Is it? So where is the trick ?
Actually I cannot scroll or resize with my fingers on the form of an EWB2 project. If I want to do so I still have to use EWB1.
Tue, Oct 20 2015 2:51 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com


<< Sorry but even after the proposed changes and rebuild of library, the problem remains. >>

Yeah, I forgot that I needed to add the actual scrolling of the viewport for touch.  It's now fixed, but there's more to it than before so the fixes will be in 2.02 B2.

Tim Young
Elevate Software
www.elevatesoft.com
Tue, Oct 20 2015 3:01 PMPermanent Link

A.Kyr

OK

Thank you Tim for the very quick answers.
Any expected date for patch version release?

Best Regards
Tue, Oct 20 2015 3:15 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

<< Thank you Tim for the very quick answers.  Any expected date for patch version release? >>

Tonight or tomorrow.

Tim Young
Elevate Software
www.elevatesoft.com
Image