View Issue Details

IDProjectCategoryView StatusLast Update
0006541JEDI VCL00 JVCL Componentspublic2020-05-19 10:31
ReporterCDamettoAssigned Toobones 
PrioritynormalSeveritytweakReproducibilityalways
Status resolvedResolutionnot fixable 
Product Version3.48 
Target VersionFixed in Version 
Summary0006541: Disabled TabSheets in JvPageControl are accessible through the keyboard
DescriptionA disabled TabSheet in a JvPageControl is not accessible using the mouse, but it remains accessible through the keyboard using the left or right arrow when the focus is on the tab of the sheet.
I propose the following improvement: to deny access via the keyboard, or better, still in Delphi’s PageControl a disabled TabSheet is still accessible (even with mouse), to add a property to let the user choose the behavior it wants.
Thank you for your time
TagsNo tags attached.

Activities

obones

2018-07-18 15:48

administrator   ~0021506

Could you check if the issue is still present in the latest GIT content? If yes, please provide the zipped sources of an application showing this.

CDametto

2019-01-25 11:27

reporter   ~0021602

The issue is still present in jvcl 3.50 with Delphi 10.3 rio

2019-01-25 11:28

 

Demo.zip (53,427 bytes)

mh

2019-04-25 21:51

reporter   ~0021740

Interestingly, the VCL itself with a normal TPageControl does not respect the Enabled property of any TTabSheet at all.

So question: I can reproduce your issue on 10.3 Rio Update 1 with your simple demo fine enough, but is this really as it should work or asked otherwise: is the VCL wrong by not respecting Enabled of any TTabSheet?

mh

2019-04-27 13:36

reporter   ~0021756

Ok, WMLButtonDown contains this code:

  if (RealIndex < PageCount) and (RealIndex >= 0) and
     ((hi.flags and TCHT_ONITEM) <> 0) then
    if not Pages[RealIndex].Enabled then
    begin
      Msg.Result := 0;
      Exit;
    end;

which makes clicking on a disabled tab a no-op.
Keyboard handling most likely uses TPageControl.FindNextPage, which does not check for enabled or not. But that one is public and not virtual, so we cannot simply override it. Now what to do, besides wishing EMBT to respect enabled property?

mh

2019-04-27 13:41

reporter   ~0021757

Ok, created this QP request:
https://quality.embarcadero.com/browse/RSP-24339

But it's unsure if it will help us...
=> what should be our solution?

mh

2019-05-12 14:13

reporter   ~0021827

It looks like keyboard handling is mostly done by TPageControl from VCL itsself. SO I guess if EMBT fixes the issue reported in the QP report listed above it would be fixed along with it.

obones

2020-05-19 10:31

administrator   ~0021925

As this comes from the VCL itself, we can't do much

Issue History

Date Modified Username Field Change
2016-12-20 12:46 CDametto New Issue
2018-07-18 15:48 obones Note Added: 0021506
2018-07-18 15:48 obones Status new => feedback
2019-01-25 11:27 CDametto Note Added: 0021602
2019-01-25 11:28 CDametto File Added: Demo.zip
2019-04-25 21:51 mh Note Added: 0021740
2019-04-27 13:36 mh Note Added: 0021756
2019-04-27 13:41 mh Note Added: 0021757
2019-05-12 14:13 mh Note Added: 0021827
2020-05-19 10:31 obones Assigned To => obones
2020-05-19 10:31 obones Status feedback => resolved
2020-05-19 10:31 obones Resolution open => not fixable
2020-05-19 10:31 obones Note Added: 0021925