Solved TD-23339: TabBar: mousecursor flicker & wrong shape

Report TD 5.x and 6.x bugs and possible workarounds.
Dave Rabelink
Founder/Site Admin
Founder/Site Admin
Netherlands
Posts: 1100
Joined: 24 Feb 2017, 09:12
Location: Gouda, The Netherlands

TD-23339: TabBar: mousecursor flicker & wrong shape

Post by Dave Rabelink » 07 Mar 2017, 13:10

Issue found on:

TD62
TD63
TD70

When hovering the mouse over datafields (any type, class, enabled/read-only) which are placed on tab pages, the mouse cursor is flickering between the edit cursor (dash line) and the selection cursor (the pointer) for a certain number of datafields.
When the mouse is hanging still over the datafield, the mouse cursor has the pointer shape. It should have the edit shape.

This makes the visualization during hovering very annoying but also displays the wrong pointer state when a datafield is pointed to.

Gupta assigned this defect for the issue:
Ticket 2938504 : TD-23339 : TabBar: datafields show mousecursor flicker and wrong shape

After investigation it seems that not all datafields have the issue. Newly added fields to TabPages do not have it.
Copy existing fields, re-ad them to tab pages does not solve it.

When looking at the faulty datafields, there is an extra data block in the sources which can only be seen using a text editor

Code: Select all

.head 3 +  Data Field: dfFlicker
.data INHERITPROPS
0000: 0100
.enddata
.data CLASSPROPS
0000: 5400610062004300 680069006C006400 4E0061006D006500 73000000FFFE1800
0020: 5400410042005F00 470065006E006500 720061006C000000
.enddata
.data CLASSPROPSSIZE
0000: 3800
.enddata

Using TDAppTools Gui Inspector, this extra property can be inspected:

TDAppTools_screenshot.png

When adding new datafields to the form and place it on a TabPage, the property is not generated.

Cause:
The application sources were ported from an older TD version to TD 6.1 initially.
Using the QuickTabs Migration Wizard, all QuickTabs were converted to the new TabBar control.
This tool does not remove the property which is part of QuickTabs by default but not used by TabBar.

At runtime TD is still referencing the property when the datafield is on a TabBar, causing the issue.

Workaround:
For now, until Gupta fixes this issue, you can manually remove the property from the sources using a text editor.
(remove the lines starting with ".data INHERITPROPS" up to the line ".enddata".)

This only applied to TabBar objects !!!

The ZIP file contains the testcase (TD 6.3 format).
Also a video showing the issue. ON the video the mousecursor flickering is not visible, but the wrong shape is.
The sample also contains TDAppTools Gui Inspector to be able to show the property.
(object menu->SAL Attributes)
TabBar_Datafield_MouseCursor.zip
You do not have the required permissions to view the files attached to this post.
Regards,
Dave Rabelink

Image
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel

Uwe van der Horst
Site Admin
Site Admin
Germany
Posts: 84
Joined: 05 Mar 2017, 14:21
Location: Wetter (Ruhr), Germany

TD-23339: TabBar: mousecursor flicker & wrong shape [FIXED]

Post by Uwe van der Horst » 05 Apr 2017, 17:22

Fixed with 6.3 Service Pack 2 Update 2.
Best regards,
Uwe van der Horst
Advo-web GmbH

Igor Ivanovic
Site Admin
Site Admin
Croatia
Posts: 769
Joined: 05 Mar 2017, 12:37
Location: Zagreb, Croatia

TD-23339: TabBar: mousecursor flicker & wrong shape [FIXED]

Post by Igor Ivanovic » 07 Apr 2017, 08:08

Dave,

This one was driving me crazy for a while...
I thought that was a class problem which I couldn't reproduce.
It never occurred to me that it could be because of the old tab properties.

I checked my sources and they were full of TabChildNames.
As we used the string properties for some other things (old tooltips) it wasn't an option to just remove the ".data INHERITPROPS" / ".enddata" blocks, so I made a little utility to make it happen.
It's an CDK app which searches and removes the unwanted TabChildNames property from every child window.
It works as an user tool, so add it there, all the needed info is in the source, select the form that has the tab and start it.

If there was only the TabChildNames in the string properties of the child window, it will still leave an empty ".data INHERITPROPS" / ".enddata" with a zero size of the block CLASSPROPSZZE 0, which you can delete afterwards.

As usual, if you use this utility, BACKUP EVERYTHING FIRST and I am not responsible for anything, etc.
You do not have the required permissions to view the files attached to this post.
Igor Ivanovic
Image

Dave Rabelink
Founder/Site Admin
Founder/Site Admin
Netherlands
Posts: 1100
Joined: 24 Feb 2017, 09:12
Location: Gouda, The Netherlands

TD-23339: TabBar: mousecursor flicker & wrong shape [FIXED]

Post by Dave Rabelink » 07 Apr 2017, 09:36

Great Igor, thanks for the tool.

(uploaded it also to the sample vault for keepers)
Regards,
Dave Rabelink

Image
Articles and information on Team Developer Tips & Tricks Wiki
Download samples, documents and resources from TD Sample Vault
Videos on TDWiki YouTube Channel

Return to “Bug Reports”

Who is online

Users browsing this forum: [Ccbot] and 1 guest