Page 1 of 1

XBrowse: error in LastDisplayPos() method [Solved]

PostPosted: Thu Nov 05, 2020 9:21 am
by Enrico Maria Giordano
I get error doing oBrw:InsCol( nPos ). This is the line from xbrowse.prg:

Code: Select all  Expand view
nWidth += ::ColAtPos( nPos++ ):nWidth + COL_SEPARATOR


And this is the error message:

Code: Select all  Expand view
  Error description: Error BASE/1081  Argument error: +
   Args:
     [   1] = U  
     [   2] = N   2


It looks as ::ColAtPos( nPos++ ):nWidth is NIL.

Any workaround?

EMG

Re: XBrowse: error in LastDisplayPos() method

PostPosted: Fri Nov 06, 2020 9:33 am
by Enrico Maria Giordano
This is a sample showing the problem, if you need it:

Code: Select all  Expand view
#include "Fivewin.ch"


FUNCTION MAIN()

    LOCAL oDlg, oBrw

    USE CUSTOMER

    DEFINE DIALOG oDlg;
           SIZE 800, 600

    @ 0, 0 XBROWSE oBrw ALIAS "CUSTOMER";
           ON RIGHT CLICK oBrw:InsCol( 1 )

    oBrw:CreateFromCode()

    ACTIVATE DIALOG oDlg;
             ON INIT oBrw:AdjClient();
             CENTER

    CLOSE

    RETURN NIL


EMG

Re: XBrowse: error in LastDisplayPos() method

PostPosted: Fri Nov 06, 2020 10:09 am
by nageswaragunupudi
You just inserted a column, but did not assign data, header, width, etc and did not call adjust.

We recommend using command syntax.

Otherwise:
Code: Select all  Expand view

WITH oBrw:InsertCol( nPos )
   :bEditValue := { |x| ... } // bSetGet
   :cHeader := <header>
   :nWidth :=  <width in pixels>
   :bOnPostEdit := // if you want edit
   // more depending on your requirements
   :Adjust()
END
oBrw:Refresh()
 

Re: XBrowse: error in LastDisplayPos() method

PostPosted: Fri Nov 06, 2020 10:26 am
by Enrico Maria Giordano
Please check you suggestion, it's not going to work. InsertCol()? :-)

Anyway, I understood that I have to assign at least the new column width, thank you.

EMG

Re: XBrowse: error in LastDisplayPos() method [Solved]

PostPosted: Fri Nov 06, 2020 11:53 am
by nageswaragunupudi
InsCol
sorry
not InsertCol