FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour XBROWSE SetCheck Help Needed.
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
XBROWSE SetCheck Help Needed.
Posted: Mon Jul 06, 2009 12:24 PM
Hi,

My Test program works well in FWH 9.03. But I could not execute using FWH 9.04 and FWH 9.05. It gives runtime error like below. I use xHarbour.

Is there any change in last versions of FWH?

Thanks,

Code (fw): Select all Collapse
<div class="fw" id="{CB}" style="font-family: monospace;">Application
===========
   Path and name: D:\PRG\NEWS\XBROWSE\TEST\test.exe (32 bits)
   Size: 1,931,264 bytes
   Time from start: 0 hours 0 mins 0 secs 
   Error occurred at: 07/06/09, 15:19:07
   Error description: Error BASE/1004  Class: 'NIL' has no exported method: EVAL
   Args:
     [   1] = U   

Stack Calls
===========
   Called from:  => EVAL(0)
   Called from: D:\FWH\source\classes\xbrowse.prg => (b)TXBRWCOLUMN:SETCHECK(7002)
   Called from: D:\FWH\source\classes\xbrowse.prg => TXBRWCOLUMN:PAINTDATA(7581)
   Called from: D:\FWH\source\classes\xbrowse.prg => TXBROWSE:PAINT(1343)
   Called from: D:\FWH\source\classes\xbrowse.prg => TXBROWSE:DISPLAY(946)
   Called from: .\source\classes\CONTROL.PRG => TXBROWSE:HANDLEEVENT(1423)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3333)
   Called from:  => DIALOGBOXINDIRECT(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
   Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG(343)
   Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS(27)
   Called from:  => EVAL(0)
   Called from: D:\FWH\source\classes\xbrowse.prg => (b)TXBRWCOLUMN:SETCHECK(7002)
   Called from: D:\FWH\source\classes\xbrowse.prg => TXBRWCOLUMN:PAINTDATA(7581)
   Called from: D:\FWH\source\classes\xbrowse.prg => TXBROWSE:PAINT(1343)
   Called from: D:\FWH\source\classes\xbrowse.prg => TXBROWSE:DISPLAY(946)
   Called from: .\source\classes\CONTROL.PRG => TXBROWSE:HANDLEEVENT(1423)
   Called from: .\source\classes\WINDOW.PRG => _FWH(3333)
   Called from:  => DIALOGBOXINDIRECT(0)
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE(273)
   Called from: TEST.PRG => MAIN(65)

System
======
   CPU type: Intel(R) Core(TM)2 Duo CPU     T8300  @ 2.40GHz -137432 Mhz
   Hardware memory: 2048 megs

   Free System resources: 90 %
        GDI    resources: 90 %
        User   resources: 90 %

Variables in use
================
   Procedure     Type   Value
   ==========================
   EVAL
     Local   1:    A    Len:    0
     Local   2:    U    
     Local   3:    U    
   (b)TXBRWCOLUMN:SETCHECK
     Local   1:    U    
   TXBRWCOLUMN:PAINTDATA
     Param   1:    N    20
     Param   2:    N    103
     Param   3:    N    20
     Param   4:    L    .F.
     Param   5:    L    .F.
     Param   6:    N    2
     Param   7:    N    1
     Local   1:    O    Class: TXBRWCOLUMN
     Local   2:    U    
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    U    
     Local   7:    U    
     Local   8:    U    
     Local   9:    U    
     Local  10:    U    
     Local  11:    U    
     Local  12:    U    
     Local  13:    U    
     Local  14:    U    
     Local  15:    U    
     Local  16:    U    
     Local  17:    C    ""
     Local  18:    U    
     Local  19:    U    
     Local  20:    U    
     Local  21:    U    
     Local  22:    U    
     Local  23:    U    
     Local  24:    U    
     Local  25:    U    
     Local  26:    U    
     Local  27:    U    
     Local  28:    U    
     Local  29:    U    
     Local  30:    U    
     Local  31:    U    
     Local  32:    N    0
     Local  33:    L    .F.
     Local  34:    L    .F.
     Local  35:    L    .F.
     Local  36:    U    
   TXBROWSE:PAINT
     Local   1:    O    Class: TXBROWSE
     Local   2:    A    Len:    6
     Local   3:    A    Len:    4
     Local   4:    O    Class: TXBRWCOLUMN
     Local   5:    N    2
     Local   6:    N    5
     Local   7:    N    20
     Local   8:    N    311
     Local   9:    N    20
     Local  10:    N    5
     Local  11:    N    40
     Local  12:    N    310
     Local  13:    N    383
     Local  14:    N    181
     Local  15:    U    
     Local  16:    N    655365937
     Local  17:    N    285286145
     Local  18:    N    -1909451806
     Local  19:    N    -1792008787
     Local  20:    U    
     Local  21:    U    
     Local  22:    N    -703588985
     Local  23:    N    20
     Local  24:    N    181
     Local  25:    N    8
     Local  26:    N    0
     Local  27:    N    0
     Local  28:    N    1
     Local  29:    N    20
     Local  30:    N    1
     Local  31:    N    5
     Local  32:    U    
     Local  33:    L    .T.
     Local  34:    L    .F.
     Local  35:    L    .F.
     Local  36:    A    Len:    5
     Local  37:    U    
     Local  38:    U    
     Local  39:    U    
     Local  40:    U    
     Local  41:    U    
     Local  42:    U    
     Local  43:    U    
     Local  44:    U    
     Local  45:    U    
     Local  46:    U    
     Local  47:    U    
     Local  48:    U    
     Local  49:    U    
     Local  50:    U    
   TXBROWSE:DISPLAY
     Local   1:    O    Class: TXBROWSE
   TXBROWSE:HANDLEEVENT
     Param   1:    N    15
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    O    Class: TXBROWSE
     Local   2:    U    
   _FWH
     Param   1:    N    0
     Param   2:    N    15
     Param   3:    N    0
     Param   4:    N    0
     Param   5:    N    1
     Local   1:    O    Class: TXBROWSE
   DIALOGBOXINDIRECT
     Param   1:    N    4194304
     Param   2:    C    "€ È€         -É     I   a m   a   D i a l o g B o x     ±P        È d e T X B R O W S E       "
     Param   3:    N    0
     Param   4:    O    Class: TDIALOG
   TDIALOG:ACTIVATE
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .T.
     Param   5:    U    
     Param   6:    L    .T.
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    L    .F.
     Local   1:    O    Class: TDIALOG
     Local   2:    N    0
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    O    Class: TDIALOG
   MAIN
     Local   1:    O    Class: TDIALOG
     Local   2:    O    Class: TXBROWSE
     Local   3:    A    Len:    5

Linked RDDs
===========
   DBF
   DBFFPT
   DBFNTX
   DBFBLOB

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HASHENTRY
     3 HBCLASS
     4 HBOBJECT
     5 TWINDOW
     6 TDIALOG
     7 TBRUSH
     8 TCONTROL
     9 TXBROWSE
    10 TFONT
    11 TXBRWCOLUMN
    12 TSCROLLBAR
    13 TBTNBMP
    14 TREG32

Memory Analysis
===============
      172 Static variables

   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes
"
     Local  13:    A    Len:    5
     Local  14:    A    Len:   77
     Local  15:    A    Len:    4
     Local  16:    U    
     Local  17:    U    
     Local  18:    B    {|| ... }
     Local  19:    U    
     Local  20:    L    .T.
   (b)ERRORSYS
     Param   1:    O    Class: ERROR
   EVAL
     Local   1:    A    Len:    0
     Local   2:    U    
     Local   3:    U    
   (b)TXBRWCOLUMN:SETCHECK
     Local   1:    U    
   TXBRWCOLUMN:PAINTDATA
     Param   1:    N    20
     Param   2:    N    103
     Param   3:    N    20
     Param   4:    L    .F.
     Param   5:    L    .F.
     Param   6:    N    2
     Param   7:    N    1
     Local   1:    O    Class: TXBRWCOLUMN
     Local   2:    U    
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    U    
     Local   7:    U    
     Local   8:    U    
     Local   9:    U    
     Local  10:    U    
     Local  11:    U    
     Local  12:    U    
     Local  13:    U    
     Local  14:    U    
     Local  15:    U    
     Local  16:    U    
     Local  17:    C    ""
     Local  18:    U    
     Local  19:    U    
     Local  20:    U    
     Local  21:    U    
     Local  22:    U    
     Local  23:    U    
     Local  24:    U    
     Local  25:    U    
     Local  26:    U    
     Local  27:    U    
     Local  28:    U    
     Local  29:    U    
     Local  30:    U    
     Local  31:    U    
     Local  32:    N    0
     Local  33:    L    .F.
     Local  34:    L    .F.
     Local  35:    L    .F.
     Local  36:    U    
   TXBROWSE:PAINT
     Local   1:    O    Class: TXBROWSE
     Local   2:    A    Len:    6
     Local   3:    A    Len:    4
     Local   4:    O    Class: TXBRWCOLUMN
     Local   5:    N    2
     Local   6:    N    5
     Local   7:    N    20
     Local   8:    N    311
     Local   9:    N    20
     Local  10:    N    5
     Local  11:    N    40
     Local  12:    N    310
     Local  13:    N    383
     Local  14:    N    181
     Local  15:    U    
     Local  16:    N    655365937
     Local  17:    N    285286145
     Local  18:    N    -1909451806
     Local  19:    N    -1792008787
     Local  20:    U    
     Local  21:    U    
     Local  22:    N    -703588985
     Local  23:    N    20
     Local  24:    N    181
     Local  25:    N    8
     Local  26:    N    0
     Local  27:    N    0
     Local  28:    N    1
     Local  29:    N    20
     Local  30:    N    1
     Local  31:    N    5
     Local  32:    U    
     Local  33:    L    .T.
     Local  34:    L    .F.
     Local  35:    L    .F.
     Local  36:    A    Len:    5
     Local  37:    U    
     Local  38:    U    
     Local  39:    U    
     Local  40:    U    
     Local  41:    U    
     Local  42:    U    
     Local  43:    U    
     Local  44:    U    
     Local  45:    U    
     Local  46:    U    
     Local  47:    U    
     Local  48:    U    
     Local  49:    U    
     Local  50:    U    
   TXBROWSE:DISPLAY
     Local   1:    O    Class: TXBROWSE
   TXBROWSE:HANDLEEVENT
     Param   1:    N    15
     Param   2:    N    0
     Param   3:    N    0
     Local   1:    O    Class: TXBROWSE
     Local   2:    U    
   _FWH
     Param   1:    N    0
     Param   2:    N    15
     Param   3:    N    0
     Param   4:    N    0
     Param   5:    N    1
     Local   1:    O    Class: TXBROWSE
   DIALOGBOXINDIRECT
     Param   1:    N    4194304
     Param   2:    C    "€ È€         -É     I   a m   a   D i a l o g B o x     ±P        È d e T X B R O W S E       "
     Param   3:    N    0
     Param   4:    O    Class: TDIALOG
   TDIALOG:ACTIVATE
     Param   1:    U    
     Param   2:    U    
     Param   3:    U    
     Param   4:    L    .T.
     Param   5:    U    
     Param   6:    L    .T.
     Param   7:    U    
     Param   8:    U    
     Param   9:    U    
     Param  10:    L    .F.
     Local   1:    O    Class: TDIALOG
     Local   2:    N    0
     Local   3:    U    
     Local   4:    U    
     Local   5:    U    
     Local   6:    O    Class: TDIALOG
   MAIN
     Local   1:    O    Class: TDIALOG
     Local   2:    O    Class: TXBROWSE
     Local   3:    A    Len:    5

Linked RDDs
===========
   DBF
   DBFFPT
   DBFNTX
   DBFBLOB

DataBases in use
================

Classes in use:
===============
     1 ERROR
     2 HASHENTRY
     3 HBCLASS
     4 HBOBJECT
     5 TWINDOW
     6 TDIALOG
     7 TBRUSH
     8 TCONTROL
     9 TXBROWSE
    10 TFONT
    11 TXBRWCOLUMN
    12 TSCROLLBAR
    13 TBTNBMP
    14 TREG32
    15 TSAY
    16 TLISTBOX
    17 TBUTTON

Memory Analysis
===============
      172 Static variables[code]


   Dynamic memory consume:
      Actual  Value:          0 bytes
      Highest Value:          0 bytes

[/code]


My Test Prg is
Code (fw): Select all Collapse
// Our first DialogBox sample

#include "FiveWin.ch"
#include "xbrowse.ch"

function Main()

   local oDlg,oBrw1, aData
   
   aData := {{"Aaaaaaaaaa",.T.,.T.,.T.,.T.},;
                    {"Bbbbbbbbbb",.T.,.f.,.T.,.T.},;
                    {"Cccccccccc",.T.,.T.,.T.,.T.},;
                    {"Dddddddddd",.f.,.T.,.f.,.T.},;
                        {"Eeeeeeeeee",.T.,.T.,.T.,.f.}}

   DEFINE DIALOG oDlg TITLE "I am a DialogBox" PIXEL SIZE 600,400
   
  @ 0,0 XBROWSE oBrw1 OF oDlg  ;
       COLUMNS {1, 2, 3, 4, 5} ;
     HEADERS {"Procedure", "Add","Edit","Delete","Monitor"} ;
     ARRAY aData ;
     ON DBLCLICK MsgInfo(oBrw1:nRowSel);
     AUTOSORT SIZE 200,100
     
   if ! Empty( oCol := oBrw1:oCol( "Add" ) )
      oCol:SetCheck( { "ON", "OFF" } )
      oCol:cSortOrder  := nil
      oCol:nWidth := 50
      oCol:nDataBmpAlign := AL_CENTER
      oCol:bStrData:={||NIL}
      oCol:nHeadStrAlign := AL_CENTER
   endif
   if ! Empty( oCol := oBrw1:oCol( "Edit" ) )
      oCol:SetCheck( { "ON", "OFF" } )
      oCol:cSortOrder  := nil
      // oCol:lBmpStretch = .T.
      oCol:nWidth := 50
      oCol:nDataBmpAlign := AL_CENTER
      oCol:bStrData:={||NIL}
      oCol:nHeadStrAlign := AL_CENTER
   endif
   if ! Empty( oCol := oBrw1:oCol( "Delete" ) )
      oCol:SetCheck( { "ON", "OFF" } )
      oCol:cSortOrder  := nil
      // oCol:lBmpStretch = .T.
      oCol:nWidth := 50
      oCol:nDataBmpAlign := AL_CENTER
      oCol:bStrData:={||NIL}
      oCol:nHeadStrAlign := AL_CENTER
   endif
   if ! Empty( oCol := oBrw1:oCol( "Monitor" ) )
      oCol:SetCheck( { "ON", "OFF" } )
      oCol:cSortOrder  := nil
      // oCol:lBmpStretch = .T.
      oCol:nWidth := 50
      oCol:nDataBmpAlign := AL_CENTER
      oCol:bStrData:={||NIL}
      oCol:nHeadStrAlign := AL_CENTER
   endif
    oBrw1:nMarqueeStyle := 5

    oBrw1:CreateFromCode()


       ACTIVATE DIALOG oDlg CENTERED 

return nil
function OleInvoke( hObj, cMethod, uParam )

#ifndef __XHARBOUR__
   return __ObjSendMsg( TOleAuto():New( hObj ), cMethod, uParam )
#else   
   local aParams := hb_aParams()

   aParams[ 1 ] = TOleAuto():New( hObj )

   return hb_execFromArray( @__ObjSendMsg(), aParams )   
#endif 

function OleSetProperty( hObj, cPropName, uValue )

return __ObjSendMsg( TOleAuto():New( hObj ), "_" + cPropName, uValue )

function OleGetProperty( hObj, cPropName )

return __ObjSendMsg( TOleAuto():New( hObj ), cPropName )
Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: XBROWSE SetCheck Help Needed.
Posted: Tue Jul 07, 2009 02:59 PM

Hi,

I have replace the METHOD Adjust() CLASS TXBrwColumn's Array condition with fwh 9.03 in xBrowse class. There is not any error. It works like before.

Is there anyone that knows why this change is done?

Thanks,

Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: XBROWSE SetCheck Help Needed.
Posted: Wed Jul 08, 2009 02:50 PM
Hello Horizon...

Please change this lines of ADJUST CLASS from TXBrwColumn CLASS
Lines 6827 to 6844

Code (fw): Select all Collapse
      if ::bStrData == nil
         if ::bEditValue == nil
            if ValType( ::oBrw:ArrCell( 1 ) ) == 'A' .and. ::nArrayCol > 0
               ::bEditValue   := ;
                  { |x| If( x == nil, ::oBrw:ArrCell( ::oBrw:nArrayAt, ::nArrayCol ), ;
                                      ::oBrw:ArrCellSet( ::oBrw:nArrayAt, ::nArrayCol, x ) ) }
               ::bStrData     := ;
                  { || ::oBrw:ArrCell( ::oBrw:nArrayAt, ::nArrayCol, ::cEditPicture ) }
            elseif ValType( ::oBrw:ArrCell( 1 ) ) $ 'CDLN'
               ::bEditValue   := ;
                  { |x| If( x == nil, ::oBrw:ArrCell( ::oBrw:nArrayAt ), ;
                                      ::oBrw:ArrCellSet( ::oBrw:nArrayAt, 1, x ) ) }
               ::bStrData     := ;
                  { || ::oBrw:ArrCell( ::oBrw:nArrayAt, 1, ::cEditPicture ) }

            endif
         endif
      endif


...with this lines
Code (fw): Select all Collapse
      if ::bEditValue == nil
         if ValType( ::oBrw:ArrCell( 1 ) ) == 'A' .and. ::nArrayCol > 0
            ::bEditValue   := ;
               { |x| If( x == nil, ::oBrw:ArrCell( ::oBrw:nArrayAt, ::nArrayCol ), ;
                                   ::oBrw:ArrCellSet( ::oBrw:nArrayAt, ::nArrayCol, x ) ) }
            ::bStrData     := if( ::bStrData == NIL, ;
               { || ::oBrw:ArrCell( ::oBrw:nArrayAt, ::nArrayCol, ::cEditPicture ) }, ::bStrData )
         elseif ValType( ::oBrw:ArrCell( 1 ) ) $ 'CDLN'
            ::bEditValue   :=  ;
               { |x| If( x == nil, ::oBrw:ArrCell( ::oBrw:nArrayAt ), ;
                                   ::oBrw:ArrCellSet( ::oBrw:nArrayAt, 1, x ) ) }
            ::bStrData     := if( ::bStrData == NIL, ;
               { || ::oBrw:ArrCell( ::oBrw:nArrayAt, 1, ::cEditPicture ) }, ::bStrData )

         endif
      endif


Please Test and comment your results
Posts: 1387
Joined: Fri May 23, 2008 01:33 PM
Re: XBROWSE SetCheck Help Needed.
Posted: Thu Jul 09, 2009 08:58 AM

Thanks Daniel,

My test program is OK now.

Regards,



Hakan ONEMLI



Harbour & MSVC 2022 & FWH 23.06

Continue the discussion