xbrowse: too many recoursive handler calls error

Postby nageswaragunupudi » Tue Jul 29, 2008 6:20 pm

Can you please let us know the FWH version? The line number in the error log does not correspond to any executable code either in 8.06 or 8.07.

In any case, since the error is in oBrw:aRow method, it appears that ::nArrayAt is 0 (Zero) at the time of the call. A relook into the code is needed.
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10292
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Postby Marco Turco » Tue Jul 29, 2008 7:04 pm

Hi,
I'm using FWH May 2008.

The problem appairs in the row
METHOD aRow INLINE ( ::aArrayData[ ::nArrayAt ] )

The strange is that I didn't make any changes on the nArrayAt value,
the error start from a simply sysrefresh().

In order to increase the selection speed I made in my function a routine that execute my code only when a key is released for more than 0.25 seconds. Could be this a problem ? See my code as follows.

Function Main()

.. && I create xbrowse as Objects[6]
..
..
aObjects[6]:bChange:={|| SelectFunc_Cons()} && action to do when any selection is made

return

Function SelectFunc_Cons()
local nSeconds

aObjects[6]:bChange:={|| nil}

nSeconds:=seconds()
do while .t.
sysrefresh() && xbrowse is refreshed and the error appairs
if seconds()-nSeconds>.25
exit
endif
enddo
..
..
.. my code
..

aObjects[6]:bChange:={|| SelectFunc_Cons()}

return
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Postby Antonio Linares » Tue Jul 29, 2008 10:07 pm

Frank,

> what is your opinion on this matter ?

Windows has its own rules to generate and manage events. If Windows allows to click several times and keep generating an event, then we have to adapt our code to Windows.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41362
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Antonio Linares » Tue Jul 29, 2008 10:13 pm

Marco,

This could be a possible temporary workaround:

METHOD aRow INLINE ( ::aArrayData[ Max( ::nArrayAt, 1 ) ] )

or

METHOD aRow INLINE If( Len( ::aArrayData ) > 0, ::aArrayData[ Max( ::nArrayAt, 1 ) ], "" ) // maybe nil instead of ""

Please try it and lets see what further info we get
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41362
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Postby Marco Turco » Wed Jul 30, 2008 5:40 pm

I just sent to my customer an update with the turn-around.
I will know you if the problem still appairs.

Thanks for the support.
Best Regards,

Marco Turco
SOFTWARE XP LLP
User avatar
Marco Turco
 
Posts: 858
Joined: Fri Oct 07, 2005 12:00 pm
Location: London

Previous

Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 46 guests