BrowseGet y tGet 25.09 [RESUELTO]

User avatar
jose_murugosa
Posts: 1279
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

BrowseGet y tGet 25.09 [RESUELTO]

Post by jose_murugosa »

La clase BrowseGet de Angel Salom me ha dado muchas satisfacciones, es una alternativa a autoget que funcionaba muy bien.
Sin embargo desde esta última versión de Fivewin ( 25.09 ) me da errores:
Atribuyo estos errores a modificaciones del método keydown de la clase tGet de Fivewin.
Agradecería si pudieran revisar estos cambios recientes para ver que ocasiona este problema.

Adjunto la clase Browseget, por si habría que realizar algún cambio en ella.

Estuve mirando la clase tget, pero hay mucho que no entiendo, entre los comentarios que no están ni en español ni en inglés de los cambios y que los mismos son bastantes.

Agradecería cualquier ayuda al respecto.

BrowseGet.ch

Code: Select all | Expand

#ifndef _BROWSEGET_CH
#define _BROWSEGET_CH

#xcommand REDEFINE BROWSEGET [ <oGet> VAR ] <uVar> ;
             [ ID <nId> ] ;
             [ <dsrc: ARRAY, HASH, DATASOURCE> <uDataSrc> ];
             [ <fil: FILTERLIST, FILTER, LIST> <uFilter> ];            
[ <dlg: OF, WINDOW, DIALOG> <oDlg> ] ; [ <help:HELPID, HELP ID> <nHelpId> ] ; [ VALID <ValidFunc> ] ; [ <pict: PICT, PICTURE> <cPict> ] ; [ <color:COLOR,COLORS> <nClrFore> [,<nClrBack>] ] ; [ FONT <oFont> ] ; [ CURSOR <oCursor> ] ; [ MESSAGE <cMsg> ] ; [ <update: UPDATE> ] ; [ WHEN <uWhen> ] ; [ ON CHANGE <uChange> ] ; [ <readonly: READONLY, NO MODIFY> ] ; [ <spin: SPINNER> [ON UP <SpnUp>] [ON DOWN <SpnDn>] [MIN <Min>] [MAX <Max>] ] ; [ ACTION <uAction> ] ; [ BITMAP <cBmpName> ] ; [ LISTHEIGHT <nListHeight> ] ;
[ CUEBANNER <cCueText> ] ; [ [ <fld: FIELD, COLUMN> ] <xField>] ; [ ITEMCOLOR <nColorTxt>[,<nColorSel>] ];
[ LISTWIDTH <nListWidth> ]; [ ADAPTAGET <bAdaptaGet>]; => ; [ <oGet> := ] TBrowseGet():ReDefine( <nId>, bSETGET(<uVar>), <oDlg>,; <nHelpId>, <cPict>, <{ValidFunc}>, <nClrFore>, <nClrBack>,; <oFont>, <oCursor>, <cMsg>, <.update.>, <{uWhen}>,; [ \{|nKey,nFlags,Self| <uChange> \}], <.readonly.>,; <.spin.>, <{SpnUp}>, <{SpnDn}>, <{Min}>, <{Max}>, [\{|self| <uAction> \}], <cBmpName>, <"uVar">,; [<cCueText>], <uDataSrc>, ; <xField>, <nListHeight>, <nListWidth>, <{bAdaptaGet}>, [\{|uDataSource, cData, Self| <uFilter>\}],; <nColorTxt>[,<nColorSel>] )
#command @ <nRow>, <nCol> BROWSEGET [ <oGet> VAR ] <uVar> ; [ <dsrc: ARRAY, HASH, DATASOURCE> <uDataSrc> ]; [ <fil: FILTERLIST, FILTER, LIST> <uFilter> ]; [ <dlg: OF, WINDOW, DIALOG> <oWnd> ] ; [ <pict: PICT, PICTURE> <cPict> ] ; [ VALID <ValidFunc> ] ; [ <color:COLOR,COLORS> <nClrFore> [,<nClrBack>] ] ; [ SIZE <nWidth>, <nHeight> ] ; [ HEIGHTLIST <nListHeight> ] ; [ FONT <oFont> ] ; [ <design: DESIGN> ] ; [ CURSOR <oCursor> ] ; [ <pixel: PIXEL> ] ; [ MESSAGE <cMsg> ] ; [ <update: UPDATE> ] ; [ WHEN <uWhen> ] ; [ <lCenter: CENTER, CENTERED> ] ; [ <lRight: RIGHT> ] ; [ ON CHANGE <uChange> ] ; [ <readonly: READONLY, NO MODIFY> ] ; [ <help:HELPID, HELP ID> <nHelpId> ] ; [ CUEBANNER <cCueText> ] ;
[ [ <fld: FIELD, COLUMN> ] <xField>] ; [ ITEMCOLOR <nColorTxt>[,<nColorSel>] ];
[ LISTWIDTH <nListWidth> ]; [ ADAPTAGET <bAdaptaGet>]; => ; [ <oGet> := ] TBrowseGet():New( <nRow>, <nCol>, bSETGET(<uVar>),; [<oWnd>], <nWidth>, <nHeight>, <cPict>, <{ValidFunc}>,; <nClrFore>, <nClrBack>, <oFont>, <.design.>,; <oCursor>, <.pixel.>, <cMsg>, <.update.>, <{uWhen}>,; <.lCenter.>, <.lRight.>,; [\{|nKey, nFlags, Self| <uChange>\}], <.readonly.>,; .f., .f., <nHelpId>,; .f., , , , ,,, <"uVar">, [<cCueText>], <uDataSrc>, ; <xField>, <nListHeight>, <nListWidth> , <{bAdaptaGet}>, [\{|uDataSource, cData, Self| <uFilter>\}],; <nColorTxt>[,<nColorSel>] )
#endi

Browseget.prg

Code: Select all | Expand

/* CLASS: TBrowseGet
    Permite mostrar una lista de datos desplegable para seleccionar desde un get
    Autor: Ángel Salom
*/
#include "fivewin.ch"
#include "browseget.ch"
#define COLOR_CAPTIONTEXT     9
#define BROWSEGETCODIGOCOLUMN   1
#define DEFAULT_GUI_FONT     17
#define BROWSEGETCODIGOCOLUMN   1
#define DATATYPE_HASH 256

CLASS TBrowseGet FROM TGet
     DATA nItemTextColor
     DATA nItemBackgroundColor
     DATA uDataSource
     DATA uOrgData
     DATA nDataType
     DATA xField
     DATA oList
     DATA bCreateList
     DATA nListHeight
     DATA nListWidth
     DATA bAdaptaGet

 METHOD New( ... )
 METHOD ReDefine( ... )

 METHOD CreateList( uDataSource )
 METHOD CloseList()

 METHOD KeyChar( nKey, nFlags )
 METHOD KeyDown( nKey, nFlags )

 METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos )

 METHOD SetList( uDataSource, xField )   INLINE  ::uDataSource := uDataSource, ::xField := xField

 METHOD ValidList() INLINE ( HB_ISOBJECT (::oList) )

END CLASS

//---------------------------------------------------------------------------//

METHOD New( nRow, nCol, bSetGet, oWnd, nWidth, nHeight, cPict, bValid,;
            nClrFore, nClrBack, oFont, lDesign, oCursor, lPixel, cMsg,;
            lUpdate, bWhen, lCenter, lRight, bChanged, lReadOnly,;
            lPassword, lNoBorder, nHelpId, lSpinner,;
            bUp, bDown, bMin, bMax, bAction, cBmpName, cVarName, cCueText,;
            uDataSrc, xField    , nListHeight,  nListWidth, bAdaptaGet, bCreateList,;
            nItemTextColor, nItemBackgroundColor  ) CLASS TBrowseGet

 DEFAULT xField      := BROWSEGETCODIGOCOLUMN
 DEFAULT nListHeight := 300
 DEFAULT nListWidth  := 500

 ::xField       := xField
 ::nListHeight  := nListHeight

 ::uDataSource  := uDataSrc
 ::bCreateList  := bCreateList

 ::SetList( uDataSrc, ::xField )

 ::nItemTextColor       := nItemTextColor
 ::nItemBackgroundColor := nItemBackgroundColor

 ::nListWidth   := nListWidth
 ::bAdaptaGet   := bAdaptaGet

 ::Super:New(nRow   , nCol    , bSetGet  , oWnd     , nWidth   , nHeight,;
         cPict  , bValid  , nClrFore , nClrBack , oFont    , lDesign,;
         oCursor, lPixel  , cMsg     , lUpdate  , bWhen    , lCenter,;
         lRight , bChanged, lReadOnly, lPassword, lNoBorder, nHelpId,;
         lSpinner, bUp    , bDown    , bMin     , bMax )

return ( self )

//---------------------------------------------------------------------------//

METHOD ReDefine( nId,       bSetGet,  oWnd,    nHelpId, cPict,   bValid, nClrFore,;
                 nClrBack,  oFont,    oCursor, cMsg,    lUpdate, bWhen,  bChanged,;
                 lReadOnly, lSpinner, bUp,     bDown,   bMin,    bMax,   bAction,;
                 cBmpName,  cVarName, cCueText,;
                 uDataSrc, xField    , nListHeight,  nListWidth, bAdaptaGet, bCreateList,;
                 nItemTextColor, nItemBackgroundColor ) CLASS TBrowseGet

 DEFAULT xField     := BROWSEGETCODIGOCOLUMN
 DEFAULT nListHeight := 300
 DEFAULT nListWidth := 300

 ::xField       := xField
 ::nListHeight  := nListHeight

 ::uDataSource  := uDataSrc
 ::bCreateList  := bCreateList

 ::SetList( uDataSrc, ::xField )

 ::nItemTextColor       := nItemTextColor
 ::nItemBackgroundColor := nItemBackgroundColor

 ::nListWidth   := nListWidth
 ::bAdaptaGet   := bAdaptaGet

 ::Super:ReDefine( nId,       bSetGet,  oWnd,    nHelpId, cPict,   bValid, nClrFore,;
               nClrBack,  oFont,    oCursor, cMsg,    lUpdate, bWhen,  bChanged,;
               lReadOnly, lSpinner, bUp,     bDown,   bMin,    bMax,   bAction,;
               cBmpName,  cVarName, cCueText )

return ( self )


METHOD CreateList() CLASS TBrowseGet

 If ! ::ValidList()

      if Len ( ::uDataSource ) > 0

           ::oList := TBrowseGetList():New( ::nListWidth, ::nListHeight, Self,;
                                     ::oFont, ::nItemTextColor, ::nItemBackgroundColor )

           ::oList:bAdaptaGet:=::bAdaptaGet
           ::oList:SetList( ::uDataSource, ::xField )

           if HB_ISOBJECT (::oList)

                ::oList:Paint()

           endif

           ::SetFocus()

      Endif

 Else

      ::uDataSource := Eval( ::bCreateList, ::uDataSource, AllTrim( ::oGet:Buffer ), Self )
      ::oList:SetList( ::uDataSource, ::xField )

      If Len ( ::oList:aData ) == 0

           ::uDataSource := ::uOrgData
           ::oList:end()
           ::oList = NIL

      Else

           ::oList:Refresh()
           ::SetFocus()

      Endif

 Endif

return ( nil )


METHOD CloseList() CLASS TBrowseGet

 if ::ValidList()

      ::oList:End()

 endif

return ( nil )


METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos ) CLASS TBrowseGet

 local aPos := { nYPos, nXPos }

 if ::ValidList()

      if nDelta < 0

           ::oList:GoDown()

      else

           ::oList:GoUp()

      endif

 endif

return ( nil )


METHOD KeyDown( nKey, nFlags ) CLASS TBrowseGet

 if ::ValidList()

      switch nKey

           case VK_BACK

                ::CreateList()
                return ::Super:KeyDown( nKey, nFlags )

           case VK_LEFT

           case VK_RIGHT

                return ::Super:KeyDown( nKey, nFlags )
                exit

           case VK_DOWN

                ::oList:GoDown()
                exit

           case VK_UP

                ::oList:GoUp()

      endswitch

 else

      return ::Super:KeyDown( nKey, nFlags )

 endif

return ( 0 )

//---------------------------------------------------------------------------//

METHOD KeyChar ( nKey, nFlags ) CLASS TBrowseGet

 local nret

 switch nKey

      case VK_ESCAPE

           ::CloseList()
           return ::Super:KeyChar( nKey, nFlags )

      case VK_BACK

           nRet = ::Super:KeyChar( nKey, nFlags )

           if HB_ISOBJECT ( ::oGet )

                if Len ( Alltrim ( ::oGet:Buffer ) ) == 0

                     ::CloseList()

                else

                     ::uDataSource := Eval( ::bCreateList, ::uDataSource, AllTrim( ::oGet:Buffer ), Self )
                     ::CreateList()

                endif

           endif

           return nRet

      case VK_RETURN

           if ::ValidList()

                eval ( ::oList:oBrowse:bChange )
                ::bValid := ::oList:bGetValid
                ::oList:End()
                ::oWnd:GoNextCtrl( ::hWnd )

           endif

      case VK_TAB

           if ::ValidList()

                eval ( ::oList:oBrowse:bChange )
                ::bValid := ::oList:bGetValid
                ::oList:End()
                ::oWnd:GoNextCtrl( ::hWnd )

           endif



      case VK_DOWN

           return ::Super:KeyChar( nKey, nFlags )

 endswitch

 nret = ::Super:KeyChar( nKey, nFlags )

 if ::oGet:Buffer != nil .and. Len ( Alltrim ( ::oGet:Buffer ) ) > 0

      ::uOrgData    := ::uDataSource
      ::uDataSource := Eval( ::bCreateList, ::uDataSource, AllTrim( ::oGet:Buffer ), Self )

      ::CreateList()

 endif

return ( nret )

/*
     Clase TBrowseGetList
     Clase para la TBrowseGet que se encarga de la lista.
     Autor: Ángel Salom
*/

CLASS TBrowseGetList

 DATA oDlgBrowse
 DATA oFont
 DATA oBrowse

 DATA lReleaseFont INIT .f.

 DATA nWidth
 DATA nHeight

 DATA uOrgValue
 DATA nDataType
 DATA aData

 DATA oGet
 DATA bAdaptaGet
 DATA bGetValid

 DATA bClrSel
 DATA bClrSelFocus
 DATA bClrStd


 METHOD New( nWidth, nHeight, oGet, oFont, nItemTextColor, nItemBackGroundColor )
 METHOD SetList( uDataSource, xField )
 METHOD Paint()
 METHOD Change()
 METHOD Refresh()
 METHOD GoUp()
 METHOD GoDown()
 METHOD End()

END CLASS

 //---------------------------------------------------------------------------//
 METHOD New( nWidth, nHeight, oGet, oFont, nITemTextColor, nItemBackGroundColor ) CLASS TBrowseGetList

 ::nWidth   := nWidth
 ::nHeight  := nHeight
 ::oGet     := oGet
 ::oFont    := oFont

 DEFAULT nItemTextColor       := nRgb ("#333333")
 DEFAULT nItemBackGroundColor := nRgb ("#3399fe")

 ::bClrStd       := {|| { nITemTextColor, nRgb ( '#fffffd' ) } }
 ::bClrSel       := {|| { nRgb ( '#fffffd' ), nItemBackGroundColor  } }
 ::bClrSelFocus  := {|| { nRgb ( '#fffffd' ), nItemBackGroundColor  } }

 If ::oFont == nil

      ::oFont := TFont():New()
      ::oFont:hFont := GetStockObject( DEFAULT_GUI_FONT )
      ::lReleaseFont := .t.

 Else

      ::oFont := oFont

 Endif

return Self


METHOD SetList( uDataSource, xField ) CLASS TBrowseGetList

 local cType := ValType( uDataSource )

 DEFAULT xField := 1

 if cType == "A"

      ::nDataType = DATATYPE_ARRAY
      ::aData := ::oGet:uDataSource

 elseif cType == "H"

      ::nDataType = DATATYPE_HASH
      ::aData := ::oGet:uDataSource

 endif

 if HB_ISOBJECT ( ::oBrowse )

      ::oBrowse:SetArray ( ::aData )

 endif

Return ( nil )


METHOD Paint() CLASS TBrowseGetList

 Local aPoint
 Local nColumn

 aPoint :={ ::oGet:nTop + ::oGet:nHeight, ::oGet:nLeft }
 aPoint = ClientToScreen( ::oGet:oWnd:hWnd, aPoint )

 ::bGetValid       := ::oGet:bValid
 ::oGet:bValid     := nil

 DEFINE DIALOG ::oDlgBrowse OF ::oGet:oWnd STYLE WS_POPUP ;
      SIZE ::nWidth, ::nHeight COLOR CLR_WHITE, CLR_WHITE

      ::oDlgBrowse:nStyle := nOr (WS_POPUP, WS_BORDER)
 ACTIVATE DIALOG ::oDlgBrowse NOWAIT ;
           ON INIT ::SetPos( aPoint[ 1 ] , aPoint[ 2 ] )


 @ 5, 5 XBROWSE ::oBrowse DATASOURCE ::aData AUTOCOLS  ;
           SIZE ::oDlgBrowse:nWidth - 10, ::oDlgBrowse:nHeight - 10  OF ::oDlgBrowse PIXEL FONT ::oFont NOBORDER

 WITH OBJECT ::oBrowse

      :nMarqueeStyle       := 5
      :lRecordSelector     := .F.
      :lAllowColSwapping   := .F.
      :lAllowColHiding     := .F.
      :lFastDraw           := .t.
      :lHScroll            := .f.
      :lVScroll            := .f.
      :lHeader             := .f.
      :lFlatStyle          := .t.
      :nStretchCol         := STRETCHCOL_WIDEST
      :lColDividerComplete := .t.
      :nColDividerStyle    := LINESTYLE_LIGHTGRAY
      :nMarqueeStyle       := MARQSTYLE_HIGHLROW
      :lRefreshOnlyData    := .F.
      :lReadOnly           := .t.

      :bClrStd       := ::bClrStd
      :bClrSel       := ::bClrSel
      :bClrSelFocus  := ::bClrSelFocus

      :CreateFromCode()
      :PostMsg( WM_SETFOCUS )
      :bKeyDown   := { | nKey | If( nKey == VK_RETURN .OR. nKey == VK_TAB, ::End() , ) }
      :bLButtonUp := { | nRow, nCol | (  Eval( ::oBrowse:bChange ),;
                     ::End(),;
                     ::oGet:oWnd:GoNextCtrl( ::oGet:hWnd ) ) }

      :bChange   := { ||  ::Change() }

 END WITH

   WITH OBJECT ::oGet

  :oWnd:bMoved      := { || (  ::End() ) }
  :oWnd:bResized    := { || (  ::End() ) }
  :oWnd:bLClicked   := { || (  ::End() ) }

   END WITH

Return ( nil )


METHOD GoDown() CLASS TBrowseGetList

 ::oBrowse:GoDown()

Return ( nil )


METHOD GoUp() CLASS TBrowseGetList

 ::oBrowse:GoUp()

Return ( nil )


METHOD Change() CLASS TBrowseGetList

 ::oGet:VarPut( ::oBrowse:aCols[ ::oGet:xField ]:Value )

 if ::bAdaptaGet != NIL

      Eval ( ::bAdaptaGet )

 endif

 ::oGet:SetPos( Len ( Alltrim ( ::oGet:cText ) ) + 1 )
 ::oGet:Refresh()

Return ( nil )


METHOD Refresh() CLASS TBrowseGetList

 ::oBrowse:Refresh()

return ( nil )


METHOD End() CLASS TBrowseGetList

 if HB_ISOBJECT ( ::oBrowse )

      ::oBrowse:End()

 endif

 if HB_ISOBJECT ( ::oFont ) .and.;
      ::lReleaseFont

      ::oFont:End()
      ::oFont:=NIL

 endif

 if HB_ISOBJECT ( ::oDlgBrowse )

      ::oDlgBrowse:End()

 endif

 ::oGet:oList := nil
 ::oGet:bValid := ::bGetValid

return ( nil )


//-----------------------------------------//
Last edited by jose_murugosa on Tue Nov 11, 2025 5:26 pm, edited 2 times in total.
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: BrowseGet y tGet 25.09

Post by Antonio Linares »

Estimado José,

Que errores te da ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
jose_murugosa
Posts: 1279
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: BrowseGet y tGet 25.09

Post by jose_murugosa »

Perdón, cosas de viejo, me olvidé de poner los errores :oops:

Code: Select all | Expand

Application
===========
   Path and name: D:\XBase-Proyectos\Camiones\empresas\CamionesMySqlSirsil\CamionesSQL.exe (32 bits)
   Size: 5,562,880 bytes
   Compiler version: Harbour 3.2.0dev (r2502110321)
   FiveWin  version: FWH 25.09
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 4 sec
   Error occurred at: 07/11/2025, 09:50:33
   Error description: Error BASE/2022  Error de argumento: ALLTRIM
   Args:
     [   1] = U   

Stack Calls
===========
   Called from:  => ALLTRIM( 0 )
   Called from: c:\clases_y_funciones_de_3ros\browseget\Browseget.prg => TBROWSEGET:KEYCHAR( 247 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1877 )
   Called from: .\source\classes\tget.prg => TBROWSEGET:HANDLEEVENT( 1605 )
   Called from: .\source\classes\window.prg => _FWH( 3760 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\dialog.prg => TDIALOG:ACTIVATE( 325 )
   Called from: .\source\function\errsysw.prg => ERRORDIALOG( 448 )
   Called from: .\source\function\errsysw.prg => (b)ERRORSYS( 24 )
   Called from: .\source\classes\tget.prg => TBROWSEGET:ISDOUBLEBYTE( 4725 )
   Called from: .\source\classes\tget.prg => TGET:KEYDOWN( 2650 )
   Called from: c:\clases_y_funciones_de_3ros\browseget\Browseget.prg => TBROWSEGET:KEYDOWN( 200 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1877 )
   Called from: .\source\classes\tget.prg => TBROWSEGET:HANDLEEVENT( 1605 )
   Called from: .\source\classes\window.prg => _FWH( 3760 )
   Called from:  => DIALOGBOX( 0 )
   Called from: .\source\classes\dialog.prg => TDIALOG:ACTIVATE( 325 )
   Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => ENTRADA( 357 )
   Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => (b)BARRABOT( 244 )
   Called from: .\source\classes\trbtn.prg => TRBTN:CLICK( 721 )
   Called from: .\source\classes\trbtn.prg => TRBTN:LBUTTONUP( 924 )
   Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1867 )
   Called from: .\source\classes\trbtn.prg => TRBTN:HANDLEEVENT( 1576 )
   Called from: .\source\classes\window.prg => _FWH( 3760 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\window.prg => TWINDOW:ACTIVATE( 1178 )
   Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => CAMIONES( 201 )

System
======
   CPU type: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 3408 Mhz
   Hardware memory: 40867 megs

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

   Windows total applications running: 1
      1 ,                                                                                                     

Variables in use
================
   Procedure     Type   Value
   ==========================
   ALLTRIM
     Param   1:    O    Class: ERROR
   TBROWSEGET:KEYCHAR
     Param   1:    U    
Local 1: U
Local 2: U
TWINDOW:HANDLEEVENT Param 1: N 8 Param 2: N 917505 Local 1: N 0 Local 2: S @LEN() Local 3: U
TCONTROL:HANDLEEVENT Param 1: N 258 Param 2: N 8 Param 3: N 917505 TBROWSEGET:HANDLEEVENT Param 1: N 258 Param 2: N 8 Param 3: N 917505 Local 1: U
_FWH Param 1: N 258 Param 2: N 8 Param 3: N 917505 Local 1: U
Local 2: U
Local 3: U
Local 4: L .T. Local 5: U
Local 6: U
Local 7: U
Local 8: U
Local 9: C "" Local 10: U
Local 11: U
DIALOGBOXINDIRECT Param 1: N 917505 Param 2: N 258 Param 3: N 8 Param 4: N 917505 Param 5: N 33 Local 1: O Class: TBROWSEGET TDIALOG:ACTIVATE Param 1: N 15859712 Param 2: C " Ȁ z F i v e W i n f o r H a r b o u r P 4 u S T A T I C E r r o r d e s c r i p t i o n : E r r o r B A S E / 1 0 6 6 E r r o r d e a r g u m e n t o : c o n d i c i o n a l P H S T A T I C & S t a c k L i s t P ! { L I S T B O X P a B U T T O N & Q u i t P / B U T T O N S e e e r r o r . l o g f i l e " Param 3: N 1250746 Param 4: O Class: TDIALOG ERRORDIALOG Param 1: U
Param 2: U
Param 3: B {|| ... } Param 4: L .T. Param 5: U
Param 6: L .T. Param 7: U
Param 8: U
Param 9: U
Param 10: U
Param 11: U
Param 12: L .F. Param 13: O Class: TDIALOG Param 14: U
Param 15: U
Local 1: N 1250746 Local 2: S @_NRESULT() Local 3: O Class: TDIALOG (b)ERRORSYS Param 1: O Class: ERROR Local 1: O Class: TDIALOG Local 2: U
Local 3: C " Called from: .\source\classes\tget.prg => TBROWSEGET:ISDOUBLEBYTE( 4725 )" Local 4: N 4 Local 5: C " Error description: Error BASE/1066 Error de argumento: condicional " Local 6: A Len: 19 Local 7: O Class: TSAY Local 8: N 1124412069 Local 9: N 1 Local 10: C "Application =========== Path and name: D:\XBase-Proyectos\Camiones\empresas\CamionesMySqlSirsil\CamionesSQL.exe (32 bits) Size: 5,562,880 bytes Compiler version: Harbour 3.2.0dev (r2502110321) FiveWin version: FWH 25.09 C compiler version: Borland/Embarcadero C++ 7.7 (32-bit) Windows 11 64 Bits, version: 6.2, Build 9200 Time from start: 4 sec Error occurred at: 07/11/2025, 09:50:33 Error description: Error BASE/1066 Error de argumento: condicional Args: [ 1] = U Stack Calls =========== Called from: .\source\classes\tget.prg => TBROWSEGET:ISDOUBLEBYTE( 4725 ) Called from: .\source\classes\tget.prg => TGET:KEYDOWN( 2650 ) Called from: c:\clases_y_funciones_de_3ros\browseget\Browseget.prg => TBROWSEGET:KEYDOWN( 200 ) Called from: => TWINDOW:HANDLEEVENT( 0 ) Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1877 ) Called from: .\source\classes\tget.prg => TBROWSEGET:HANDLEEVENT( 1605 ) Called from: .\source\classes\window.prg => _FWH( 3760 ) Called from: => DIALOGBOX( 0 ) Called from: .\source\classes\dialog.prg => TDIALOG:ACTIVATE( 325 ) Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => ENTRADA( 357 ) Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => (b)BARRABOT( 244 ) Called from: .\source\classes\trbtn.prg => TRBTN:CLICK( 721 ) Called from: .\source\classes\trbtn.prg => TRBTN:LBUTTONUP( 924 ) Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1867 ) Called from: .\source\classes\trbtn.prg => TRBTN:HANDLEEVENT( 1576 ) Called from: .\source\classes\window.prg => _FWH( 3760 ) Called from: => WINRUN( 0 ) Called from: .\source\classes\window.prg => TWINDOW:ACTIVATE( 1178 ) Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => CAMIONES( 201 ) System ====== CPU type: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 3408 Mhz Hardware memory: 40867 megs Free System resources: 90 % GDI resources: 90 % User resources: 90 % Windows total applications running: 1 1 , Variables in use ================ Procedure Type Value ========================== TBROWSEGET:ISDOUBLEBYTE Param 1: O Class: ERROR TGET:KEYDOWN Param 1: C "S " Param 2: N 1 Param 3: N 1 Local 1: L .F. Local 2: U
Local 3: N 1 Local 4: C "S " Local 5: N 1 Local 6: U
Local 7: U
Local 8: U
TBROWSEGET:KEYDOWN Param 1: N 8 Param 2: N 917505 Local 1: O Class: TBROWSEGET Local 2: N 1 Local 3: N 1 Local 4: U
Local 5: N -1 Local 6: U
Local 7: U
Local 8: U
Local 9: U
Local 10: U
TWINDOW:HANDLEEVENT Param 1: N 8 Param 2: N 917505 TCONTROL:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 TBROWSEGET:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
_FWH Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
Local 2: U
Local 3: U
Local 4: L .T. Local 5: U
Local 6: U
Local 7: U
Local 8: U
Local 9: C "" Local 10: U
Local 11: U
DIALOGBOX Param 1: N 917505 Param 2: N 256 Param 3: N 8 Param 4: N 917505 Param 5: N 33 Local 1: O Class: TBROWSEGET TDIALOG:ACTIVATE Param 1: N 15859712 Param 2: C "ENTRADA" Param 3: N 4264944 Param 4: O Class: TDIALOG ENTRADA Param 1: U
Param 2: U
Param 3: U
Param 4: L .T. Param 5: U
Param 6: L .T. Param 7: B {|| ... } Param 8: U
Param 9: U
Param 10: U
Param 11: U
Param 12: L .F. Param 13: O Class: TDIALOG Param 14: U
Param 15: U
Local 1: N 4264944 Local 2: S @_NRESULT() Local 3: O Class: TDIALOG (b)BARRABOT Local 1: O Class: TDIALOG Local 2: A Len: 3 Local 3: O Class: TBUTTONBMP Local 4: O Class: TBUTTON Local 5: A Len: 11 Local 6: A Len: 57 Local 7: A Len: 3 Local 8: A Len: 23 Local 9: A Len: 29 TRBTN:CLICK Param 1: O Class: TRBTN TRBTN:LBUTTONUP TCONTROL:HANDLEEVENT Param 1: N 45 Param 2: N 50 Param 3: N 0 Local 1: L .T. Local 2: L .T. Local 3: S @CLICK() TRBTN:HANDLEEVENT Param 1: N 514 Param 2: N 0 Param 3: N 2949170 Local 1: U
_FWH Param 1: N 514 Param 2: N 0 Param 3: N 2949170 WINRUN Param 1: N 2949170 Param 2: N 514 Param 3: N 0 Param 4: N 2949170 Param 5: N 9 Local 1: O Class: TRBTN TWINDOW:ACTIVATE Param 1: N 4264944 CAMIONES Param 1: C "MAXIMIZED" Param 2: U
Param 3: U
Param 4: U
Param 5: U
Param 6: U
Param 7: U
Param 8: B {|| ... } Param 9: U
Param 10: U
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: U
Param 17: B {|| ... } Param 18: U
Param 19: U
Param 20: L .F. Param 21: U
Local 1: O Class: TWINDOW Local 2: U
Local 3: U Linked RDDs =========== DBF DBFFPT DBFBLOB DBFCDX DBFNTX DataBases in use ================ Classes in use: =============== 1 ERROR 2 HBCLASS 3 HBOBJECT 4 TWINDOW 5 TCONTROL 6 TGET 7 FWMARIACONNECTION 8 TFONT 9 TICON 10 TBRUSH 11 FWROWSET 12 FWMARIAROWSET 13 TFIELD 14 TFIELDS 15 TREG32 16 TBITMAP 17 TIMAGE 18 TMSGBAR 19 TRECT 20 TMSGITEM 21 TTIMER 22 TRIBBONBAR 23 TRPANEL 24 TRBGROUP 25 TRBTN 26 TMENU 27 TMENUITEM 28 TDIALOG 29 GET 30 TCLIPGET 31 TBROWSEGET 32 TSAY 33 TBUTTON 34 TBUTTONBMP 35 TBROWSEGETLIST 36 TXBROWSE 37 TXBRWCOLUMN 38 TCLIPBOARD 39 TSTRUCT Memory Analysis =============== 860 Static variables Dynamic memory consume: Actual Value: 121110528 bytes Highest Value: 121110528 bytes " Local 11: A Len: 5 Local 12: A Len: 1 Local 13: A Len: 5 Local 14: U
Local 15: B {|| ... } Local 16: L .T. Local 17: N 97.50 Local 18: N 0 Local 19: U
Local 20: N 158 Local 21: N 30 Local 22: N 11 Local 23: N 450 Local 24: N 350 Local 25: N 33 Local 26: N 220 Local 27: N 123 TBROWSEGET:ISDOUBLEBYTE Param 1: O Class: ERROR TGET:KEYDOWN Param 1: C "S " Param 2: N 1 Param 3: N 1 Local 1: L .F. Local 2: U
Local 3: N 1 Local 4: C "S " Local 5: N 1 Local 6: U
Local 7: U
Local 8: U
TBROWSEGET:KEYDOWN Param 1: N 8 Param 2: N 917505 Local 1: O Class: TBROWSEGET Local 2: N 1 Local 3: N 1 Local 4: U
Local 5: N -1 Local 6: U
Local 7: U
Local 8: U
Local 9: U
Local 10: U
TWINDOW:HANDLEEVENT Param 1: N 8 Param 2: N 917505 TCONTROL:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 TBROWSEGET:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
_FWH Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
Local 2: U
Local 3: U
Local 4: L .T. Local 5: U
Local 6: U
Local 7: U
Local 8: U
Local 9: C "" Local 10: U
Local 11: U
DIALOGBOX Param 1: N 917505 Param 2: N 256 Param 3: N 8 Param 4: N 917505 Param 5: N 33 Local 1: O Class: TBROWSEGET TDIALOG:ACTIVATE Param 1: N 15859712 Param 2: C "ENTRADA" Param 3: N 4264944 Param 4: O Class: TDIALOG ENTRADA Param 1: U
Param 2: U
Param 3: U
Param 4: L .T. Param 5: U
Param 6: L .T. Param 7: B {|| ... } Param 8: U
Param 9: U
Param 10: U
Param 11: U
Param 12: L .F. Param 13: O Class: TDIALOG Param 14: U
Param 15: U
Local 1: N 4264944 Local 2: S @_NRESULT() Local 3: O Class: TDIALOG (b)BARRABOT Local 1: O Class: TDIALOG Local 2: A Len: 3 Local 3: O Class: TBUTTONBMP Local 4: O Class: TBUTTON Local 5: A Len: 11 Local 6: A Len: 57 Local 7: A Len: 3 Local 8: A Len: 23 Local 9: A Len: 29 TRBTN:CLICK Param 1: O Class: TRBTN TRBTN:LBUTTONUP TCONTROL:HANDLEEVENT Param 1: N 45 Param 2: N 50 Param 3: N 0 Local 1: L .T. Local 2: L .T. Local 3: S @CLICK() TRBTN:HANDLEEVENT Param 1: N 514 Param 2: N 0 Param 3: N 2949170 Local 1: U
_FWH Param 1: N 514 Param 2: N 0 Param 3: N 2949170 WINRUN Param 1: N 2949170 Param 2: N 514 Param 3: N 0 Param 4: N 2949170 Param 5: N 9 Local 1: O Class: TRBTN TWINDOW:ACTIVATE Param 1: N 4264944 CAMIONES Param 1: C "MAXIMIZED" Param 2: U
Param 3: U
Param 4: U
Param 5: U
Param 6: U
Param 7: U
Param 8: B {|| ... } Param 9: U
Param 10: U
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: U
Param 17: B {|| ... } Param 18: U
Param 19: U
Param 20: L .F. Param 21: U
Local 1: O Class: TWINDOW Local 2: U
Local 3: U Linked RDDs =========== DBF DBFFPT DBFBLOB DBFCDX DBFNTX DataBases in use ================ Classes in use: =============== 1 ERROR 2 HBCLASS 3 HBOBJECT 4 TWINDOW 5 TCONTROL 6 TGET 7 FWMARIACONNECTION 8 TFONT 9 TICON 10 TBRUSH 11 FWROWSET 12 FWMARIAROWSET 13 TFIELD 14 TFIELDS 15 TREG32 16 TBITMAP 17 TIMAGE 18 TMSGBAR 19 TRECT 20 TMSGITEM 21 TTIMER 22 TRIBBONBAR 23 TRPANEL 24 TRBGROUP 25 TRBTN 26 TMENU 27 TMENUITEM 28 TDIALOG 29 GET 30 TCLIPGET 31 TBROWSEGET 32 TSAY 33 TBUTTON 34 TBUTTONBMP 35 TBROWSEGETLIST 36 TXBROWSE 37 TXBRWCOLUMN 38 TCLIPBOARD 39 TSTRUCT 40 TLISTBOX Memory Analysis =============== 860 Static variables Dynamic memory consume: Actual Value: 121241600 bytes Highest Value: 121241600 bytes
Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: BrowseGet y tGet 25.09

Post by karinha »

És la misma clase?

viewtopic.php?p=239689#p239689

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
jose_murugosa
Posts: 1279
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: BrowseGet y tGet 25.09

Post by jose_murugosa »

karinha wrote: Fri Nov 07, 2025 2:27 pm

És la misma clase?

viewtopic.php?p=239689#p239689

Regards, saludos.

Hola Karinha
Si creo que es la misma.

Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: BrowseGet y tGet 25.09

Post by karinha »

Que hay en esta lynea?

Code: Select all | Expand

   Browseget.prg => TBROWSEGET:KEYCHAR( 247 )

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
jose_murugosa
Posts: 1279
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: BrowseGet y tGet 25.09

Post by jose_murugosa »

karinha wrote: Fri Nov 07, 2025 3:00 pm

Que hay en esta lynea?

Code: Select all | Expand

   Browseget.prg => TBROWSEGET:KEYCHAR( 247 )

Regards, saludos.

247 if Len ( Alltrim ( ::oGet:Buffer ) ) == 0

Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: BrowseGet y tGet 25.09

Post by Antonio Linares »

Prueba a cambiar esa línea:

if Len ( Alltrim ( ::oGet:Buffer ) ) == 0

por esta:

if Empty( ::oGet:Buffer )

regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: BrowseGet y tGet 25.09

Post by karinha »

Intenta:

Code: Select all | Expand

 ? LEN( ::oGet:Buffer  )
 ? alltrim( ::oGet:Buffer  )

if Alltrim( LEN ( ::oGet:Buffer ) ) == 0
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
jose_murugosa
Posts: 1279
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: BrowseGet y tGet 25.09

Post by jose_murugosa »

El error anterior parece estar resuelto, pero ahora se produce el siguiente error en la línea 200

200 return ::Super:KeyDown( nKey, nFlags )

Este es el error.log:

Code: Select all | Expand

Application
===========
   Path and name: D:\XBase-Proyectos\Camiones\empresas\CamionesMySqlSirsil\CamionesSQL.exe (32 bits)
   Size: 5,563,392 bytes
   Compiler version: Harbour 3.2.0dev (r2502110321)
   FiveWin  version: FWH 25.09
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 4 sec
   Error occurred at: 07/11/2025, 12:57:25
   Error description: Error BASE/1066  Error de argumento: condicional
   Args:
     [   1] = U   

Stack Calls
===========
   Called from: .\source\classes\tget.prg => TBROWSEGET:ISDOUBLEBYTE( 4725 )
   Called from: .\source\classes\tget.prg => TGET:KEYDOWN( 2650 )
   Called from: c:\clases_y_funciones_de_3ros\browseget\BROWSEGET.prg => TBROWSEGET:KEYDOWN( 200 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1877 )
   Called from: .\source\classes\tget.prg => TBROWSEGET:HANDLEEVENT( 1605 )
   Called from: .\source\classes\window.prg => _FWH( 3760 )
   Called from:  => DIALOGBOX( 0 )
   Called from: .\source\classes\dialog.prg => TDIALOG:ACTIVATE( 325 )
   Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => ENTRADA( 357 )
   Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => (b)BARRABOT( 244 )
   Called from: .\source\classes\trbtn.prg => TRBTN:CLICK( 721 )
   Called from: .\source\classes\trbtn.prg => TRBTN:LBUTTONUP( 924 )
   Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1867 )
   Called from: .\source\classes\trbtn.prg => TRBTN:HANDLEEVENT( 1576 )
   Called from: .\source\classes\window.prg => _FWH( 3760 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\window.prg => TWINDOW:ACTIVATE( 1178 )
   Called from: d:\xbase-proyectos\camiones\empresas\camionesmysqlsirsil\source\Camiones.prg => CAMIONES( 201 )

System
======
   CPU type: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 3408 Mhz
   Hardware memory: 40867 megs

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

   Windows total applications running: 1
      1 ,                                                                                                     

Variables in use
================
   Procedure     Type   Value
   ==========================
   TBROWSEGET:ISDOUBLEBYTE
     Param   1:    O    Class: ERROR
   TGET:KEYDOWN
     Param   1:    C    "AA          "
     Param   2:    N    1
     Param   3:    N    2
     Local   1:    L    .F.
     Local   2:    U    
Local 3: N 1 Local 4: C "AA" Local 5: N 2 Local 6: U
Local 7: U
Local 8: U
TBROWSEGET:KEYDOWN Param 1: N 8 Param 2: N 917505 Local 1: O Class: TBROWSEGET Local 2: N 2 Local 3: N 2 Local 4: U
Local 5: N -1 Local 6: U
Local 7: U
Local 8: U
Local 9: U
Local 10: U
TWINDOW:HANDLEEVENT Param 1: N 8 Param 2: N 917505 TCONTROL:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 TBROWSEGET:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
_FWH Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
Local 2: U
Local 3: U
Local 4: L .T. Local 5: U
Local 6: U
Local 7: U
Local 8: U
Local 9: C "" Local 10: U
Local 11: U
DIALOGBOX Param 1: N 917505 Param 2: N 256 Param 3: N 8 Param 4: N 917505 Param 5: N 33 Local 1: O Class: TBROWSEGET TDIALOG:ACTIVATE Param 1: N 7602176 Param 2: C "ENTRADA" Param 3: N 6230664 Param 4: O Class: TDIALOG ENTRADA Param 1: U
Param 2: U
Param 3: U
Param 4: L .T. Param 5: U
Param 6: L .T. Param 7: B {|| ... } Param 8: U
Param 9: U
Param 10: U
Param 11: U
Param 12: L .F. Param 13: O Class: TDIALOG Param 14: U
Param 15: U
Local 1: N 6230664 Local 2: S @_NRESULT() Local 3: O Class: TDIALOG (b)BARRABOT Local 1: O Class: TDIALOG Local 2: A Len: 3 Local 3: O Class: TBUTTONBMP Local 4: O Class: TBUTTON Local 5: A Len: 11 Local 6: A Len: 57 Local 7: A Len: 3 Local 8: A Len: 23 Local 9: A Len: 29 TRBTN:CLICK Param 1: O Class: TRBTN TRBTN:LBUTTONUP TCONTROL:HANDLEEVENT Param 1: N 50 Param 2: N 34 Param 3: N 0 Local 1: L .T. Local 2: L .T. Local 3: S @CLICK() TRBTN:HANDLEEVENT Param 1: N 514 Param 2: N 0 Param 3: N 3276834 Local 1: U
_FWH Param 1: N 514 Param 2: N 0 Param 3: N 3276834 WINRUN Param 1: N 3276834 Param 2: N 514 Param 3: N 0 Param 4: N 3276834 Param 5: N 9 Local 1: O Class: TRBTN TWINDOW:ACTIVATE Param 1: N 6230664 CAMIONES Param 1: C "MAXIMIZED" Param 2: U
Param 3: U
Param 4: U
Param 5: U
Param 6: U
Param 7: U
Param 8: B {|| ... } Param 9: U
Param 10: U
Param 11: U
Param 12: U
Param 13: U
Param 14: U
Param 15: U
Param 16: U
Param 17: B {|| ... } Param 18: U
Param 19: U
Param 20: L .F. Param 21: U
Local 1: O Class: TWINDOW Local 2: U
Local 3: U Linked RDDs =========== DBF DBFFPT DBFBLOB DBFCDX DBFNTX DataBases in use ================ Classes in use: =============== 1 ERROR 2 HBCLASS 3 HBOBJECT 4 TWINDOW 5 TCONTROL 6 TGET 7 FWMARIACONNECTION 8 TFONT 9 TICON 10 TBRUSH 11 FWROWSET 12 FWMARIAROWSET 13 TFIELD 14 TFIELDS 15 TREG32 16 TBITMAP 17 TIMAGE 18 TMSGBAR 19 TRECT 20 TMSGITEM 21 TTIMER 22 TRIBBONBAR 23 TRPANEL 24 TRBGROUP 25 TRBTN 26 TMENU 27 TMENUITEM 28 TDIALOG 29 GET 30 TCLIPGET 31 TBROWSEGET 32 TSAY 33 TBUTTON 34 TBUTTONBMP 35 TBROWSEGETLIST 36 TXBROWSE 37 TXBRWCOLUMN 38 TCLIPBOARD 39 TSTRUCT Memory Analysis =============== 860 Static variables Dynamic memory consume: Actual Value: 121372672 bytes Highest Value: 121372672 bytes

Gracias Antonio y Karinha.

Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: BrowseGet y tGet 25.09

Post by karinha »

Prueba este ejemplo, pls.

Code: Select all | Expand

// C:\BROWGET\TESTBGET.PRG

#include "fivewin.ch"
#include "browseget.ch"

EXTERNAL OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto
EXTERNAL _DBF, DBFCDX, DBFFPT
ANNOUNCE RDDSYS

STATIC lSeekWild := .t.

FUNCTION Main()

   FIELD FIRST

   LOCAL oDlg, oGet, cName, cName1, cName2, oRs,  cAlias := "CUST"

   cName := SPACE(20)

   USE CUSTOMER NEW ALIAS CUST SHARED VIA 'DBFCDX'

   INDEX ON UPPER(FIRST) TAG FIRST1 TO TMP MEMORY

   SET ORDER TO TAG FIRST1

   GO TOP

   DEFINE DIALOG oDlg TITLE "Test BrowseGet" SIZE 600, 300 PIXEL

   oDlg:lHelpIcon := .F.

   @ 1,2 BROWSEGET oGet var cName of oDlg                         ;
         DATASOURCE {}                                            ;
         FILTER CUST->( ListFilter1( uDataSource, cData, Self ) ) ;
         COLUMN 1                                                 ;
         HEIGHTLIST 400

   @ 3,2 BUTTON "&Ok" OF odlg ACTION MsgAlert( "Get 1:" + cName )

   @ 3,20 BUTTON "&Close" OF odlg ACTION( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

//---------------------------------------------------------------------------//
// match case without case sensitive
function ListFilter1( aList, cData, oSelf )

   local aNewList := {}
   local cFor     := Upper( AllTrim( cData ) )
   local bFor

   if lSeekWild
      cFor   := '"' + cFor + '" $ UPPER(FIRST)'
   else
      cFor   := 'UPPER(FIRST)="' + cFor + '"'
   endif    

   bFor     := &( "{ ||" + cFor + "}" )

   aNewList := FW_DbfToArray( "FIRST", bFor )

RETURN aNewList

// fin / end

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
jose_murugosa
Posts: 1279
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: BrowseGet y tGet 25.09

Post by jose_murugosa »

karinha wrote: Fri Nov 07, 2025 5:08 pm

Prueba este ejemplo, pls.

Code: Select all | Expand

// C:\BROWGET\TESTBGET.PRG

#include "fivewin.ch"
#include "browseget.ch"

EXTERNAL OrdKeyNo, OrdKeyCount, OrdCreate, OrdKeyGoto
EXTERNAL _DBF, DBFCDX, DBFFPT
ANNOUNCE RDDSYS

STATIC lSeekWild := .t.

FUNCTION Main()

   FIELD FIRST

   LOCAL oDlg, oGet, cName, cName1, cName2, oRs,  cAlias := "CUST"

   cName := SPACE(20)

   USE CUSTOMER NEW ALIAS CUST SHARED VIA 'DBFCDX'

   INDEX ON UPPER(FIRST) TAG FIRST1 TO TMP MEMORY

   SET ORDER TO TAG FIRST1

   GO TOP

   DEFINE DIALOG oDlg TITLE "Test BrowseGet" SIZE 600, 300 PIXEL

   oDlg:lHelpIcon := .F.

   @ 1,2 BROWSEGET oGet var cName of oDlg                         ;
         DATASOURCE {}                                            ;
         FILTER CUST->( ListFilter1( uDataSource, cData, Self ) ) ;
         COLUMN 1                                                 ;
         HEIGHTLIST 400

   @ 3,2 BUTTON "&Ok" OF odlg ACTION MsgAlert( "Get 1:" + cName )

   @ 3,20 BUTTON "&Close" OF odlg ACTION( oDlg:End() ) CANCEL

   ACTIVATE DIALOG oDlg CENTERED

RETURN NIL

//---------------------------------------------------------------------------//
// match case without case sensitive
function ListFilter1( aList, cData, oSelf )

   local aNewList := {}
   local cFor     := Upper( AllTrim( cData ) )
   local bFor

   if lSeekWild
      cFor   := '"' + cFor + '" $ UPPER(FIRST)'
   else
      cFor   := 'UPPER(FIRST)="' + cFor + '"'
   endif    

   bFor     := &( "{ ||" + cFor + "}" )

   aNewList := FW_DbfToArray( "FIRST", bFor )

RETURN aNewList

// fin / end

Produce el mismo error:

Code: Select all | Expand

Application
===========
   Path and name: D:\XBASE-PROYECTOS\BRWGET\TESTBGET.exe (32 bits)
   Size: 5,138,944 bytes
   Compiler version: Harbour 3.2.0dev (r2502110321)
   FiveWin  version: FWH 25.09
   C compiler version: Borland/Embarcadero C++ 7.7 (32-bit)
   Windows 11 64 Bits, version: 6.2, Build 9200 

   Time from start: 3 sec
   Error occurred at: 11/07/25, 14:30:21
   Error description: Error BASE/1066  Argument error: conditional
   Args:
     [   1] = U   

Stack Calls
===========
   Called from: .\source\classes\tget.prg => TBROWSEGET:ISDOUBLEBYTE( 4725 )
   Called from: .\source\classes\tget.prg => TGET:KEYDOWN( 2650 )
   Called from: c:\clases_y_funciones_de_3ros\browseget\BROWSEGET.prg => TBROWSEGET:KEYDOWN( 200 )
   Called from:  => TWINDOW:HANDLEEVENT( 0 )
   Called from: .\source\classes\control.prg => TCONTROL:HANDLEEVENT( 1877 )
   Called from: .\source\classes\tget.prg => TBROWSEGET:HANDLEEVENT( 1605 )
   Called from: .\source\classes\window.prg => _FWH( 3760 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\dialog.prg => TDIALOG:ACTIVATE( 325 )
   Called from: d:\xbase-proyectos\brwget\source\TESTBGET.prg => MAIN( 40 )

System
======
   CPU type: Intel(R) Core(TM) i7-6700 CPU @ 3.40GHz 3408 Mhz
   Hardware memory: 40867 megs

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

   Windows total applications running: 1
      1 ,                                                                                                     

Variables in use
================
   Procedure     Type   Value
   ==========================
   TBROWSEGET:ISDOUBLEBYTE
     Param   1:    O    Class: ERROR
   TGET:KEYDOWN
     Param   1:    C    "A                   "
     Param   2:    N    1
     Param   3:    N    1
     Local   1:    L    .F.
     Local   2:    U    
Local 3: N 1 Local 4: C "A " Local 5: N 1 Local 6: U
Local 7: U
Local 8: U
TBROWSEGET:KEYDOWN Param 1: N 8 Param 2: N 917505 Local 1: O Class: TBROWSEGET Local 2: N 1 Local 3: N 1 Local 4: U
Local 5: N -1 Local 6: U
Local 7: U
Local 8: U
Local 9: U
Local 10: U
TWINDOW:HANDLEEVENT Param 1: N 8 Param 2: N 917505 TCONTROL:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 TBROWSEGET:HANDLEEVENT Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
_FWH Param 1: N 256 Param 2: N 8 Param 3: N 917505 Local 1: U
Local 2: U
Local 3: U
Local 4: L .T. Local 5: U
Local 6: U
Local 7: U
Local 8: U
Local 9: C "" Local 10: U
Local 11: U
DIALOGBOXINDIRECT Param 1: N 917505 Param 2: N 256 Param 3: N 8 Param 4: N 917505 Param 5: N 2 Local 1: O Class: TBROWSEGET TDIALOG:ACTIVATE Param 1: N 7143424 Param 2: C " Ȁ - T e s t B r o w s e G e t P
L e E D I T P 6 f B U T T O N & O k P x 6 % g B U T T O N & C l o s e " Param 3: N 0 Param 4: O Class: TDIALOG MAIN 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: U
Param 11: U
Param 12: L .F. Param 13: O Class: TDIALOG Param 14: U
Param 15: U
Local 1: N 0 Local 2: S @_NRESULT() Local 3: O Class: TDIALOG Linked RDDs =========== DBF DBFFPT DBFBLOB DBFCDX DBFNTX DataBases in use ================ 1: => CUST RddName: DBFCDX ============================== RecNo RecCount BOF EOF 320 500 .F. .F. Indexes in use TagName => UPPER(FIRST) FIRST1 Relations in use Classes in use: =============== 1 ERROR 2 HBCLASS 3 HBOBJECT 4 TWINDOW 5 TDIALOG 6 TBRUSH 7 TCONTROL 8 TGET 9 TBROWSEGET 10 GET 11 TCLIPGET 12 TBUTTON 13 TFONT 14 TREG32 15 TRECT 16 TBROWSEGETLIST 17 TXBROWSE 18 TXBRWCOLUMN 19 TCLIPBOARD 20 TSTRUCT Memory Analysis =============== 736 Static variables Dynamic memory consume: Actual Value: 1310720 bytes Highest Value: 1310720 bytes

Regards, saludos.

Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: BrowseGet y tGet 25.09

Post by karinha »

Prueba otra versión de FWH, porque con FWH1905 funciona perfectamente.

Regards, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: BrowseGet y tGet 25.09

Post by karinha »

Code: Select all | Expand

/* CLASS: TBrowseGet
    Permite mostrar una lista de datos desplegable para seleccionar desde un get
*/

//TODO: Documentar

#include "fivewin.ch"
#include "browseget.ch"

#define COLOR_CAPTIONTEXT     9
#define BROWSEGETCODIGOCOLUMN   1
#define DEFAULT_GUI_FONT     17
#define DATATYPE_HASH 256


CLASS TBrowseGet FROM TGet

   DATA nItemTextColor
   DATA nItemBackgroundColor

   DATA uDataSource
   DATA uOrgData
   DATA nDataType
   DATA xField
   DATA oList
   DATA bCreateList

   DATA nListHeight
   DATA nListWidth

   DATA bAdaptaGet

   METHOD New()
   METHOD ReDefine()

   METHOD CreateList( uDataSource )
   METHOD CloseList()

   METHOD KeyChar( nKey, nFlags )
   METHOD KeyDown( nKey, nFlags )

   METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos )

   METHOD SetList( uDataSource, xField )   INLINE  ::uDataSource := uDataSource, ::xField := xField

   METHOD ValidList() INLINE ( HB_ISOBJECT (::oList) )

END CLASS

//---------------------------------------------------------------------------//

METHOD New( nRow, nCol, bSetGet, oWnd, nWidth, nHeight, cPict, bValid,;
            nClrFore, nClrBack, oFont, lDesign, oCursor, lPixel, cMsg,;
            lUpdate, bWhen, lCenter, lRight, bChanged, lReadOnly,;
            lPassword, lNoBorder, nHelpId, lSpinner,;
            bUp, bDown, bMin, bMax, bAction, cBmpName, cVarName, cCueText,;
            uDataSrc, xField    , nListHeight,  nListWidth, bAdaptaGet, bCreateList,;
            nItemTextColor, nItemBackgroundColor  ) CLASS TBrowseGet

   DEFAULT xField      := BROWSEGETCODIGOCOLUMN
   DEFAULT nListHeight := 300
   DEFAULT nListWidth  := 500

   ::xField       := xField
   ::nListHeight  := nListHeight

   ::uDataSource  := uDataSrc
   ::bCreateList  := bCreateList

   ::SetList( uDataSrc, ::xField )

   ::nItemTextColor       := nItemTextColor
   ::nItemBackgroundColor := nItemBackgroundColor

   ::nListWidth   := nListWidth
   ::bAdaptaGet   := bAdaptaGet

   ::Super:New(nRow   , nCol    , bSetGet  , oWnd     , nWidth   , nHeight,;
             cPict  , bValid  , nClrFore , nClrBack , oFont    , lDesign,;
             oCursor, lPixel  , cMsg     , lUpdate  , bWhen    , lCenter,;
             lRight , bChanged, lReadOnly, lPassword, lNoBorder, nHelpId,;
             lSpinner, bUp    , bDown    , bMin     , bMax )

return ( self )

//---------------------------------------------------------------------------//

METHOD ReDefine( nId,       bSetGet,  oWnd,    nHelpId, cPict,   bValid, nClrFore,;
                 nClrBack,  oFont,    oCursor, cMsg,    lUpdate, bWhen,  bChanged,;
                 lReadOnly, lSpinner, bUp,     bDown,   bMin,    bMax,   bAction,;
                 cBmpName,  cVarName, cCueText,;
                 uDataSrc, xField    , nListHeight,  nListWidth, bAdaptaGet, bCreateList,;
                 nItemTextColor, nItemBackgroundColor ) CLASS TBrowseGet

   DEFAULT xField     := BROWSEGETCODIGOCOLUMN
   DEFAULT nListHeight := 300
   DEFAULT nListWidth := 300

   ::xField       := xField
   ::nListHeight  := nListHeight

   ::uDataSource  := uDataSrc
   ::bCreateList  := bCreateList

   ::SetList( uDataSrc, ::xField )

   ::nItemTextColor       := nItemTextColor
   ::nItemBackgroundColor := RGB(0,0,0)//nItemBackgroundColor

   ::nListWidth   := nListWidth
   ::bAdaptaGet   := bAdaptaGet

   ::Super:ReDefine( nId,       bSetGet,  oWnd,    nHelpId, cPict,   bValid, nClrFore,;
                   nClrBack,  oFont,    oCursor, cMsg,    lUpdate, bWhen,  bChanged,;
                   lReadOnly, lSpinner, bUp,     bDown,   bMin,    bMax,   bAction,;
                   cBmpName,  cVarName, cCueText )


return ( self )


METHOD CreateList() CLASS TBrowseGet

   If ! ::ValidList()

  if Len ( ::uDataSource ) > 0

    ::oList := TBrowseGetList():New( ::nListWidth, ::nListHeight, Self,;
                                     ::oFont, ::nItemTextColor, ::nItemBackgroundColor )

    ::oList:bAdaptaGet:=::bAdaptaGet
    ::oList:SetList( ::uDataSource, ::xField )

    if HB_ISOBJECT (::oList)

      ::oList:Paint()
       ::oList:Refresh()
      ::SetFocus()
    endif

    ::SetFocus()
sysrefresh()
      Endif

   Else

  ::uDataSource := Eval( ::bCreateList, ::uDataSource, AllTrim( ::oGet:Buffer ), Self )
  ::oList:SetList( ::uDataSource, ::xField )

  If Len ( ::oList:aData ) == 0

     ::uDataSource := ::uOrgData
     ::oList:end()
     ::oList = NIL

  Else

     ::oList:Refresh()
     ::SetFocus()

  Endif

   Endif

return ( nil )


METHOD CloseList() CLASS TBrowseGet

   if ::ValidList()

  ::oList:End()

   endif

return ( nil )


METHOD MouseWheel( nKeys, nDelta, nXPos, nYPos ) CLASS TBrowseGet

   local aPos := { nYPos, nXPos }

   if ::ValidList()

  if nDelta < 0

     ::oList:GoDown()

  else

     ::oList:GoUp()

  endif

   endif

return ( nil )


METHOD KeyDown( nKey, nFlags ) CLASS TBrowseGet

   if ::ValidList()

  switch nKey

     case VK_BACK

        ::CreateList()
        return ::Super:KeyDown( nKey, nFlags )

     case VK_LEFT

     case VK_RIGHT

        return ::Super:KeyDown( nKey, nFlags )
        exit

     case VK_DOWN

        ::oList:GoDown()
        exit

     case VK_UP

        ::oList:GoUp()

  endswitch

   else

  return ::Super:KeyDown( nKey, nFlags )

   endif

return ( 0 )

//---------------------------------------------------------------------------//

METHOD KeyChar ( nKey, nFlags ) CLASS TBrowseGet

   local nret

   switch nKey

  case VK_ESCAPE

     ::CloseList()
     return ::Super:KeyChar( nKey, nFlags )

  case VK_BACK

     nRet = ::Super:KeyChar( nKey, nFlags )

     if HB_ISOBJECT ( ::oGet )

        if Len ( Alltrim ( ::oGet:Buffer ) ) == 0

           ::CloseList()

        else

           ::uDataSource := Eval( ::bCreateList, ::uDataSource, AllTrim( ::oGet:Buffer ), Self )
           ::CreateList()

        endif

     endif

     return nRet

  case VK_RETURN

     if ::ValidList()

        eval ( ::oList:oBrowse:bChange )
        ::bValid := ::oList:bGetValid
        ::oList:End()
        ::oWnd:GoNextCtrl( ::hWnd )

     endif

  case VK_TAB

     if ::ValidList()

        eval ( ::oList:oBrowse:bChange )
        ::bValid := ::oList:bGetValid
        ::oList:End()
        ::oWnd:GoNextCtrl( ::hWnd )

     endif



  case VK_DOWN

     return ::Super:KeyChar( nKey, nFlags )

   endswitch

   nret = ::Super:KeyChar( nKey, nFlags )

   if ::oGet:Buffer != nil .and. Len ( Alltrim ( ::oGet:Buffer ) ) > 0

  ::uOrgData    := ::uDataSource
  ::uDataSource := Eval( ::bCreateList, ::uDataSource, AllTrim( ::oGet:Buffer ), Self )

  ::CreateList()

   endif

return ( nret )



CLASS TBrowseGetList

   DATA oDlgBrowse
   DATA oFont
   DATA oBrowse

   DATA lReleaseFont INIT .f.

   DATA nWidth
   DATA nHeight

   DATA uOrgValue
   DATA nDataType
   DATA aData

   DATA oGet
   DATA bAdaptaGet
   DATA bGetValid

   DATA bClrSel
   DATA bClrSelFocus
   DATA bClrStd


   METHOD New( nWidth, nHeight, oGet, oFont, nItemTextColor, nItemBackGroundColor )
   METHOD SetList( uDataSource, xField )
   METHOD Paint()
   METHOD Change()
   METHOD Refresh()
   METHOD GoUp()
   METHOD GoDown()
   METHOD End()

 END CLASS

 //---------------------------------------------------------------------------//
 METHOD New( nWidth, nHeight, oGet, oFont, nITemTextColor, nItemBackGroundColor ) CLASS TBrowseGetList

   ::nWidth   := nWidth
   ::nHeight  := nHeight
   ::oGet     := oGet
   ::oFont    := oFont

   DEFAULT nITemTextColor       := nRgb ("#333333")
   DEFAULT nItemBackGroundColor := nRgb (255,255,255)//("#3399fe")

   ::bClrStd       := {|| { nITemTextColor, nRgb ( '#fffffd' ) } }
   ::bClrSel       := {|| { nRgb ( '#fffffd' ), nItemBackGroundColor  } }
   ::bClrSelFocus  := {|| { nRgb ( '#fffffd' ), nItemBackGroundColor  } }

   If ::oFont == nil

 ::oFont := TFont():New()
 ::oFont:hFont := GetStockObject( DEFAULT_GUI_FONT )
 ::lReleaseFont := .t.

   Else

 ::oFont := oFont

   Endif

 return Self


 METHOD SetList( uDataSource, xField ) CLASS TBrowseGetList

   local cType := ValType( uDataSource )

   DEFAULT xField := 1

   if cType == "A"

  ::nDataType = DATATYPE_ARRAY
  ::aData := ::oGet:uDataSource

   elseif cType == "H"

  ::nDataType = DATATYPE_HASH
  ::aData := ::oGet:uDataSource

   endif

   if HB_ISOBJECT ( ::oBrowse )

  ::oBrowse:SetArray ( ::aData )

   endif

 Return ( nil )


 METHOD Paint() CLASS TBrowseGetList

   Local aPoint
   Local nColumn

   aPoint :={ ::oGet:nTop + ::oGet:nHeight, ::oGet:nLeft }
   aPoint = ClientToScreen( ::oGet:oWnd:hWnd, aPoint )

   ::bGetValid       := ::oGet:bValid
   ::oGet:bValid     := nil

   DEFINE DIALOG ::oDlgBrowse OF ::oGet:oWnd STYLE WS_POPUP ;
                 SIZE ::nWidth, ::nHeight COLOR CLR_WHITE, CLR_WHITE

   ::oDlgBrowse:nStyle := nOr (WS_POPUP, WS_BORDER)
   ACTIVATE DIALOG ::oDlgBrowse NOWAIT ;
                          ON INIT ::SetPos( aPoint[ 1 ] , aPoint[ 2 ] )


   @ 5, 5 XBROWSE ::oBrowse DATASOURCE ::aData AUTOCOLS  ;
         SIZE ::oDlgBrowse:nWidth - 10, ::oDlgBrowse:nHeight - 10  OF ::oDlgBrowse PIXEL FONT ::oFont NOBORDER

   WITH OBJECT ::oBrowse

  :nMarqueeStyle       := 5
  :lRecordSelector     := .F.
  :lAllowColSwapping   := .F.
  :lAllowColHiding     := .F.
  :lFastDraw           := .t.
  :lHScroll            := .F.
  :lVScroll            := .F.
  :lHeader             := .f.
  :lFlatStyle          := .t.
  :nStretchCol         := STRETCHCOL_WIDEST
  :lColDividerComplete := .t.
  :nColDividerStyle    := LINESTYLE_LIGHTGRAY
  :nMarqueeStyle       := MARQSTYLE_HIGHLROW
  :lRefreshOnlyData    := .F.
  :lReadOnly           := .t.

  :bClrStd       := ::bClrStd
  :bClrSel       := ::bClrSel
  :bClrSelFocus  := ::bClrSelFocus

  :CreateFromCode()
  :PostMsg( WM_SETFOCUS )
  :bKeyDown   := { | nKey | If( nKey == VK_RETURN .OR. nKey == VK_TAB, ::End() , ) }
  :bLButtonUp := { | nRow, nCol | (  Eval( ::oBrowse:bChange ),;
                                           ::End(),;
                                           ::oGet:oWnd:GoNextCtrl( ::oGet:hWnd ) ) }

  :bChange   := { ||  ::Change() }

   END WITH

   WITH OBJECT ::oGet

  :oWnd:bMoved      := { || (  ::End() ) }
  :oWnd:bResized    := { || (  ::End() ) }
  :oWnd:bLClicked   := { || (  ::End() ) }

   END WITH

 Return ( nil )


 METHOD GoDown() CLASS TBrowseGetList

   ::oBrowse:GoDown()

 Return ( nil )


 METHOD GoUp() CLASS TBrowseGetList

   ::oBrowse:GoUp()

 Return ( nil )


 METHOD Change() CLASS TBrowseGetList

   ::oGet:VarPut( ::oBrowse:aCols[ ::oGet:xField ]:Value )

   if ::bAdaptaGet != NIL

  Eval ( ::bAdaptaGet )

   endif

   ::oGet:SetPos( Len ( Alltrim ( ::oGet:cText ) ) + 1 )
   ::oGet:Refresh()

 Return ( nil )


 METHOD Refresh() CLASS TBrowseGetList

   ::oBrowse:Refresh()

 return ( nil )


 METHOD End() CLASS TBrowseGetList

   if HB_ISOBJECT ( ::oBrowse )

  ::oBrowse:End()

   endif

   if HB_ISOBJECT ( ::oFont ) .and.;
     ::lReleaseFont

  ::oFont:End()
  ::oFont:=NIL

   endif

   if HB_ISOBJECT ( ::oDlgBrowse )

  ::oDlgBrowse:End()

   endif

   ::oGet:oList := nil
   ::oGet:bValid := ::bGetValid

 return ( nil )


 //-----------------------------------------//
 

Reagrds, saludos.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
jose_murugosa
Posts: 1279
Joined: Mon Feb 06, 2006 4:28 pm
Location: Uruguay
Contact:

Re: BrowseGet y tGet 25.09

Post by jose_murugosa »

Si con la versión 2504 y anteriores funciona bien, es con la 2509 únicamente con la que da problemas.
En esa versión hay varios cambios a la tget.

Saludos/Regards,
José Murugosa
"Los errores en programación, siempre están entre la silla, el teclado y la IA!!"
Post Reply