The sample program did not use 'STATICAREA'
As soon as you add 'STATICAREA' the system fails.
Code: Select all
#include "dcdialog.ch"
PROCEDURE MAIN()
LOCAL oDlg, oDraw:={}, GetOptions, GetList:={}, oTabPage1, oTabPage2, bAction, ;
bResize, oT1, oT2, cc1, cc2, cc3
cc1:=cc2:=cc3 := "Just some Text "
@ 6,1 DCTABPAGE oTabPage1 CAPTION 'Tab Page #1' ;
PREOFFSET 0 POSTOFFSET 60 ;
STATICAREA oT1 ;
ANGLE 30 ; // Comment this line out and resize works properly
SIZE 40,8 ;
DCSETPARENT TO oT1
@ 1,3 DCSAY "Tab 1 Line 1" GET cc1 SAYRIGHT SAYSIZE 15
@ 2,3 DCSAY "Tab 1 Line 2" GET cc2 SAYRIGHT SAYSIZE 15
@ 3,3 DCSAY "Tab 1 Line 3" GET cc3 SAYRIGHT SAYSIZE 15
DCSETPARENT TO
@ 0,0 DCTABPAGE oTabPage2 CAPTION 'Tab Page #2' ;
STATICAREA oT2 ;
RELATIVE oTabPage1
DCGETOPTIONS EXITVALIDATE RESIZE RESIZEDEFAULT DCGUI_RESIZE_AUTORESIZE_SCALEFONT
DCREAD GUI FIT ;
OPTIONS GetOptions //;
// EVAL {|o|bResize := o:resize, o:resize := {|a,b,o|Eval(bResize,a,b,o),Eval(bAction)}}
RETURN
PROCEDURE AppSys()
RETURN
I changed the fix to the _DCFUNCT.PRG as follows:
Code: Select all
IF oXbp:isDerivedFrom('DC_XbpTabPage')
IF Valtype(oXbp:staticArea) == 'O'
Eval(oXbp:resize,aOldSize,aNewSize,oXbp)
IF oXbp:angle > 0
oXbp:configure()
ENDIF
oXbp := oXbp:staticArea
ENDIF
ENDIF
This does not throw an error, but the redraw events are so frequent that the dialog locks-up after a few resizes.
This is not a big deal, I will just not use the 'ANGLE' clause on tabs until I find a better solution.
Bottom line: back out the changes from _DCFUNCT.PRG untill this is worked out.
Terry