Scrollbar elevator broken on themed TRzShellList

Components on the Raize Shell palette: shell trees, shell lists, open/save dialogs, select folder dialog, etc.

Scrollbar elevator broken on themed TRzShellList

Postby dave_lifeway » Tue Feb 14, 2012 6:08 pm

DXE2/Win7/RC6

I'm seeing a problem with the scrollbar elevator on the TRzShellList when themed: clicking it and trying to drag it has no effect, the elevator stays put.

Additional notes:
- At design time (with the design interactive flag on) it works as expected
- It works as expected in non-themed apps
- All other forms of scrolling (keyboard, scroll buttons, clicking in gutter) work as expected.
- The TShellListView example component exhibits the same failure
- A standard TListView works as expected

Any suggestions?

Thanks,
Dave
dave_lifeway
 
Posts: 9
Joined:
Wed Feb 08, 2012 4:50 pm

Re: Scrollbar elevator broken on themed TRzShellList

Postby Raize Support » Wed Feb 15, 2012 4:43 am

Hi Dave,

Thanks for the report. We were able to duplicate the issue. It took a while, but I was finally able to track down what is causing the behavior. The problem is in the TListViewStyleHook class that Embarcadero created for handling the behavior changes needed for the ListView when VCL Styles are applied to an application.

The specific problem is that in the TListViewStyleHook.WMMouseMove method, there is the following check:

if Control is TListView then
begin

Well, this will only work if Control is indeed a direct descendant of the TListView class. The problem is that the TRzListView, TRzShellList, and even the TShellListView all descendant from TCustomListView and not TListView. As a result, the necessary code to manage the thumb tracking is not getting called.

To me, this is a bug in the VCL class and as such we are reporting the issue to Embarcadero. I'll also look into providing a workaround for this issue.

Ray
Raize Software Support
Raize Software
http://www.raize.com
Raize Support
 
Posts: 431
Joined:
Fri Mar 25, 2011 9:04 pm

Re: Scrollbar elevator broken on themed TRzShellList

Postby dave_lifeway » Wed Feb 15, 2012 12:25 pm

Ray,

Thanks for the reply. I think you're absolutely correct in your assessment of the problem, and agree 100% that it's a bug. Thanks for looking into it. Hopefully they'll correct it soon, as I don't see any way around it without duplicating a bunch of code. But I'm sure you know the theme code far better than I do, so maybe something clever will occur to you. I think I remember reading that style hooks can stack up somehow, but that would still mean duplicating a bunch of code.

Dave
dave_lifeway
 
Posts: 9
Joined:
Wed Feb 08, 2012 4:50 pm

Re: Scrollbar elevator broken on themed TRzShellList

Postby Raize Support » Wed Feb 15, 2012 12:43 pm

Hi Dave,

You can replace a style hook used by a control. They don't really stack, but you can take advantage of inheritance if your style hook descends from an existing one. Of course, how much you can leverage from the ancestor depends on how it was designed. In this particular case, it looks as though at a minimum that the entire method would need to copied into a new style hook. And if that method code calls other private methods, then those would need to be copied as well. In short, it's not looking pretty. But I'll see what I can do.

Ray
Raize Software Support
Raize Software
http://www.raize.com
Raize Support
 
Posts: 431
Joined:
Fri Mar 25, 2011 9:04 pm


Return to Shell

Who is online

Users browsing this forum: No registered users and 1 guest

cron