Page 1 of 1

Refresh problem in oGet

PostPosted: Fri Aug 23, 2013 4:40 pm
by ellano
Using the following code (which was completely functionally on previous versions of FiveWin)

Code: Select all  Expand view
REDEFINE GET oSay[14] VAR aTotal[14] ID  1 OF oFld:aDialogs[2] PICTURE "###.#" READONLY FONT oFont[2]
REDEFINE GET oSay[15] VAR aTotal[15] ID  2 OF oFld:aDialogs[2] PICTURE "###.#" READONLY FONT oFont[2]  
..13 like these.
REDEFINE CHECKBOX fill[194] ID 320 OF oFld:aDialogs[2] VALID upt_result(3,fill,@aTotal,oSay,oGet,.T.)
REDEFINE RADIO fill[16] OF oFld:aDialogs[2] ID 21, 102, 112, 122 VALID upt_result(3,fill,@aTotal,oSay,oGet,.T.)
... 240 combinations like these ones

PROCEDURE upt_result(nWhich,fill,aTotal,oSay,oGet,lUpdate)
...
FOR i=14 to 25  //these 10 "refresh" will cause the problem but were previously working
  oSay[i]:REFRESH()
NEXT i
 oSay[2]:REFRESH() //the following "refresh" are OK
 oSay[3]:REFRESH()
 oSay[4]:REFRESH()
 oFld:aDialogs[2]:REFRESH()

RETURN


I get a blank dialog tab after 2 consecutive changes which forces 2 or more updates (in a specific tab of a tabbed dialog).
If I leave the tab and re-enter, everything is updated and working. One or two modifications and I have a blank tab again.
If I comment out the refresh code the tab dialog remains (without the updated values, of course)
Did something changed in FW 13.07 which I should be aware of?

Re: Refresh problem in oGet

PostPosted: Fri Aug 23, 2013 7:44 pm
by MGA
FOR i=14 to 25 //these 10 "refresh" will cause the problem but were previously working
if HB_IsObject(oSay[i])
oSay[i]:REFRESH()
endif
NEXT i

Re: Refresh problem in oGet

PostPosted: Sat Aug 24, 2013 3:10 pm
by ellano
Tried your solution although their are all objects. The problem is still there.

Should be something with FWH since if I only update part of the oSays the problem disappears!

Code: Select all  Expand view
   IF lUpdate  //this way the problem disappears
      FOR i:=16 TO 23  //was 14 to 23. Reappears when more objects are updated
        oSay[i]:REFRESH()
      NEXT i
      oSay[2]:REFRESH()
      oSay[3]:REFRESH()
      oSay[4]:REFRESH()
      oFld:aDialogs[2]:REFRESH()
    ENDIF
 

Re: Refresh problem in oGet

PostPosted: Sat Aug 24, 2013 3:32 pm
by ellano
Found it at last after nearly ten hours of searching:

Changed the resources from this:

EDITTEXT 1, 59, 265, 18, 12
EDITTEXT 2, 80, 265, 18, 12
EDITTEXT 3, 101, 265, 18, 12
...

to this

EDITTEXT 900, 59, 265, 18, 12
EDITTEXT 901, 80, 265, 18, 12
EDITTEXT 902, 101, 265, 18, 12

Could not understand the difference but at least it is working.