Page 1 of 1

Tooltip

Posted: Tue Aug 20, 2024 2:59 am
by Wolfgang Ciriack
Hello,
i activated Tooltips with DC_ToolTipEnable(.T.)
I get some errors at my customers:
MAGICHELP:EXECUTE(938)
Xbase Error.: 2: Parameter hat falschen Typ
Sub System..: BASE[3]
Operation...: "<1545>==<20240821>"
Can Default.: No
Can Retry...: No
Can Substit.: Yes
Severity....: Error
Cargo.......: [None]
Tries.......: 0
Thread No...: 7

Line 938 from _dcfunct:
ELSEIF oXbp == oLastXbp .AND. Valtype(lastmp1) = 'A' .AND. Valtype(mp1) = 'A' .AND. lastmp1[1] == mp1[1] .AND. ;
lastmp1[2] == mp1[2] .AND. nLastEvent == nEvent
What is wrong there ?

Second problem:
If i have the dialog on a second monitor, all tooltips are shown at the most left position of the dialog.
Can this corrected by any parameter ?

Re: Tooltip

Posted: Fri Aug 23, 2024 7:35 am
by SlavkoDam
Hi,
There are a number of complains with problems of using DC_ToolTipEnable(.T.) and MagicHelp, and none of them are solved??? It seems that MagicHelp in not so "Magic", or DC_ToolTip don't use it correctly.

I think that in the line 938 the cause of error is this part: lastmp1[1] == mp1[1] .AND. lastmp1[2] == mp1[2]

In the error message: Parameter hat falschen Typ, Operation...: "<1545>==<20240821>", it seems that the left part is a numeric value and the right part is DTOS(), that is a character value. You can try to fix this with the following code:

VAR2CHAR(lastmp1[1]) == VAR2CHAR(mp1[1]) .AND. VAR2CHAR(lastmp1[2]) == VAR2CHAR(mp1[2])

but it doesn't mean that its the right solution.

Re: Tooltip

Posted: Fri Aug 23, 2024 11:26 am
by Auge_Ohr
hi,

Magighelp is not a Windows Tooltip Control ***, it is just a simple BAD Xbase++ "Workaround"
*** https://learn.microsoft.com/en-us/wind ... p-controls

it use Xbase++ Thread Timing and NOT Windows Event, so when Thread become active it might have NOT the same Status when Control got Focus.

Re: Tooltip

Posted: Mon Aug 26, 2024 6:02 am
by SlavkoDam
Hi,

I know that MagicHelp is an Alaska sample in Source\Samples\Solution\Tooltip. It works fine in their example, and I don't think its a bad solution. Maybe its usage in eXpress++ system is not correct and needs some changes.

In my PowerWin library I also implemented tooltip, but its simpler than in Alaska sample. My solution user :enter() and :leave() events to display and destroy tooltips, when they are defined for the Xbp object with :toolTipText variable. It don't need a watcher/dispatcher thread like in Alaska example. There is no problem with it in any situation.

Re: Tooltip

Posted: Mon Aug 26, 2024 6:48 am
by Auge_Ohr
hi,
as i say there is a REAL Windows Control called Tooltip.
https://learn.microsoft.com/en-us/windo ... p-controls

MagicHelp is a Xbase++ Tool, written by a User (don´t remember WHO did it), and work with Xbase++ Thread Timing.
it expect row/col in mp1[1]/mp1[2] to work but often have other Event in mp1 and than CRASH

the Problem exist since v1.5
ALASKA should finally implement a Real Windows Tooltip Control and other missing Windows Controls

Re: Tooltip

Posted: Wed Aug 28, 2024 12:13 am
by SlavkoDam
Hi,
I know all Windows controls, including Tooltip. In my PowerWin library I have implemented some of them: Animation, SysLink and Up-Down. I think that Alaska has no more interest to implement other missing Windows controls. If you prefer Windows Tooltip control, why don't you implement it and make your contribution? I believe you can achieve that.

Regarding MagicHelp, if the problem is known and exists so long, its strange that no one fixed it so far? That couldn't be so hard and impossible.

Re: Tooltip

Posted: Wed Aug 28, 2024 12:40 am
by Auge_Ohr
hi,
SlavkoDam wrote: Wed Aug 28, 2024 12:13 am If you prefer Windows Tooltip control, why don't you implement it and make your contribution?
i have made it in my DXE LIb, but i do not use Xbase++ any more.
i use FIVEWIN / Harbour since 5 Years (after 20 Years Xbase++)
SlavkoDam wrote: Wed Aug 28, 2024 12:13 am I think that Alaska has no more interest to implement other missing Windows controls
that the Point, that Alaska has no more interest to finish there Work and let User alone with the Problem.