Page 1 of 2

Tooltips

Posted: Sun Jan 31, 2010 2:43 am
by edv-rudrich
Hi

it seems as if there's a problem with the calculation of the tooltip position when having a
dual monitor environment!
If you use a Laptop with a additional second screen plugged in and you move the application
to the external monitor in the 1-2 monitor mode of windows, the tooltips are always shown
at the Laptop Screen -- not where the mouse is at the external screen.

It also looks to me as if there was a problem when resizing dialogs too in such an environment,
because sometimes my app crashes with an error at DC_Resize() sowhere, but I'm still trying to
figure out what is going on exactly!

And:
2-3 times a days I get the following error:

Xbase++ Version : Xbase++ (R) Version 1.90.331
eXPress++ version : eXPress++ (c) Version 1.9.252
Betriebssystem : Windows 06.01 Build 07600
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: N VALUE: 15
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Internal datastructures corrupted
oError:filename :
oError:genCode : 41
oError:operation : threadInfo
oError:osCode : 0
oError:severity : 2
oError:subCode : 5
oError:subSystem : BASE
oError:thread : 3
oError:tries : 0

Computername : ST21
Log In Name : HALLI
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Called from JD_MAGICHELP:TESTTOOLTIP(194)
Called from JD_MAGICHELPTHREAD:TESTTOOLTIP(71)
Called from JD_MAGICHELPTHREAD:EXECUTE(44)
Called from (B)JD_MAGICHELPTHREAD:INIT(36)


- Michael

Re: Tooltips

Posted: Sun Jan 31, 2010 7:56 am
by rdonnay
Michael -

I remember putting code in the tooltip system to prevent it from going off the screen because of user complaints.
I had complaints that a tooltip would display partially off the screen if the object were close to the right perimeter of the screen.

So I changed the code to force the tooltip to anchor to the right margin of the screen.
I can confirm that there is a problem with dual monitors. I just tested it.
I will try to find a solution.

Roger

Re: Tooltips

Posted: Sun Jan 31, 2010 8:23 am
by rdonnay
I believe that the Internal Data Structures Corrupted errors have been corrected in build 253.

Give it a try.

Re: Tooltips

Posted: Sun Jan 31, 2010 8:43 am
by rdonnay
This should solve both of your problems.

I tested the tooltips with dual monitors.

Re: Tooltips

Posted: Sun Jan 31, 2010 10:18 pm
by edv-rudrich
Hi ..
just tried to switch to 253 and get the following error
when I try to close my dialogs
(all created with dcdialog command)

eXPress++ version : eXPress++ (c) Version 1.9.253 b1
Betriebssystem : Windows 06.01 Build 07600
------------------------------------------------------------------------------
oError:args :
-> VALTYPE: U VALUE: NIL
-> VALTYPE: N VALUE: 19
oError:canDefault : N
oError:canRetry : N
oError:canSubstitute: J
oError:cargo : NIL
oError:description : Parameter has wrong type
oError:filename :
oError:genCode : 2
oError:operation : <U of >[<19>]
oError:osCode : 0
oError:severity : 2
oError:subCode : 3
oError:subSystem : BASE
oError:thread : 5
oError:tries : 0
------------------------------------------------------------------------------
CALLSTACK:
------------------------------------------------------------------------------
Aufgerufen von DC_GETLISTOBJECT(3749)
Aufgerufen von DC_GETDESTROY(7625)
Aufgerufen von DISPO_FP(6584)
Aufgerufen von (B)MAINMENU(2964)

Also - copied in the last changes you provided to _dcjdhlp.zip:
No - the tooltip is still not shown on the right position :-(

have to switch back to 252..

too bad, because I have to leave China tomorrow afternoon..

- Michael

Re: Tooltips

Posted: Sun Jan 31, 2010 11:26 pm
by edv-rudrich
Hi Roger

- Tooltips:

I need to do more testings if can switch to 253 without getting the error posted above..

Thks

Michael

Re: Tooltips

Posted: Mon Feb 01, 2010 7:32 am
by rdonnay
Your problem with DC_GetDestroy() is because you are not using the SAVE clause of DCREAD GUI.

I never tested DC_GetDestroy() with an empty GetList and that's why it errored.

The attached _DCGETBX.PRG fixes this problem.

Copy it to your \exp19\source\dclipx directory and run BUILD19.BAT or BUILD19_SL1.BAT to rebuild DCLIPX.DLL.

Re: Tooltips

Posted: Mon Feb 01, 2010 7:36 am
by edv-rudrich
Hi..

I will try this.. thanks..

- Michael

Re: Tooltips

Posted: Mon Feb 01, 2010 7:39 am
by edv-rudrich
Forgot to say:
this code worked for years-- with 252 also..

- Michael

Re: Tooltips

Posted: Mon Feb 01, 2010 8:16 am
by rdonnay
this code worked for years-- with 252 also..
Yes, I understand that, but DC_GetDestroy() was not doing anything in your code if you didn't use the SAVE clause.
With some new code changes in 253, calling DC_GetDestroy() with an empty Getlist caused an error.
The change I gave you fixes this error. This fix will be in build 254.