Page 1 of 1

Antonio Problema con TCBROWSE desde la actualización

Posted: Tue Jul 01, 2008 7:54 am
by miarcod
Hola estoy desesperado y ya no se que hacer, a ver si alguien me puede ayudar

Desde que actualicé la versión que tenía 2.6 a la nueva versión 8.04 me encuentro solucionando problemas, el problema que se produce ahora es que no se ejecuta todo el código que tengo escrito en determinadas partes del programa, por ejemplo:


El codigo que adjunto (que funcionaba con la versión anterior) es parte de la función de control del teclado cuando se está editando un tcbrowse
al recibir la pulsación enter entra en modo edición, si se pulsa ESCAPE, se debería salir del modo edición. Se ejecuta la función FINEDIT pero no se completa y vuelve a entrar en modo edición como si se volviese a pulsar la tecla ENTER de hecho la función se vuelve a ejecutar y recibe de nuevo el codigo de la tecla enter.

He descubierto que si ejecuto las lineas que activan tres botones, no se produce el mal funcionamiento.

De hecho provoco un error en la función que no rompe la ejecución del programa hasta que pulso ENTER si pulso ESCAPE se continúa ejecutando la edición de la celda.

Gracias, un saludo

Code: Select all


STATIC FUNCTION MiKeyDown( nKey, nFlags, oAlbaran )
....
        IniEdit( oAlbaran )
        oAlbaran:lNoSinFocus := .T.
        ::Setfocus()
        uTemp = Eval( ::aColumns[ ::nColAct ]:bData )
        If ::nColAct == DLVDESCRI
           lAutoF2(.T.)
        EndIf
        dEPURA("EditCol1")
        lSalida := ::lEditCol( ::nColAct, @uTemp, cPicture,,CLR_BLACK, CLR_YELLOW )
        dEPURA("EditCol2")
        Depura(lSalida, "::lEditCol")
        Depura("1")
        If ::nColAct == DLVDESCRI
           lAutoF2(.F.)
        EndIf

        oAlbaran:lNoSinFocus := .F.
        nKey := 0
        If lSalida
           If !::lNoActuliz
              Eval( ::aColumns[ ::nColAct ]:bData, uTemp )
           endif
           ::DrawSelect()
           nKey :=  VerificaCol( oAlbaran )
           If nKey != 0
               Return FinEdit( oAlbaran, nKey, @nP, NOKEY )
           EndIf

           If oAlbaran:nEstado ==  DALTAS .and. ::nColAct = DLVIMPORT
              oAlbaran:nEstado :=  DCONSU
               Return FinEdit( oAlbaran, VK_DOWN, @nP, NOKEY )
           endif
           Return FinEdit( oAlbaran, NIL, @nP, nKey )
       else
       Depura("3")
          if oAlbaran:nEstado == DMODIF
          Depura("4")
             DPAG1
             AnulaModif(Self, oAlbaran )
             ::SetFocus()
          endif

          If ::lColAnt 		// Si pulsa arriba cambia a la columna anterior
             Depura("5")
             ::lColAnt := .F.
             ::PrevColAct()
             If ::nColAct >= DLVCODART
                nKey := VK_RETURN
             endif
             Return FinEdit( oAlbaran, nKey, @nP, NOKEY )
          Endif

          If oAlbaran:nEstado == DALTAS
             if ::nColAct == DLVCODART
                nKey := VK_UP
             else
                nKey := VK_RETURN
             EndIf
             Return FinEdit( oAlbaran, nKey, @nP, NOKEY )
          endif
        endif
        Depura("8")
        Depura(nkey, "Nkey")
        ::SetFocus()
        //Return FinEdit( oAlbaran, nKey, @nP, NOKEY )
        xT :=   FinEdit( oAlbaran, nKey, @nP, NOKEY )
        Depura("9")
        Depura(xt, "xt")
        xt=xt+"error"
        Return xt
....


//----------------------------------------------------------------------------//
STATIC FUNCTION IniEdit( oAlbaran )
OMTERMI:Disable()
OMNUEVO:Disable()
OMABAJO:Disable()
DDETALVENT:lProcess := .T.
RETURN NIL

//----------------------------------------------------------------------------//
STATIC FUNCTION FinEdit( oAlbaran, nKey, nP, nKeyRet )
//Depura("FinEdit1")
OMTERMI:Enable()    // btnbmp
OMNUEVO:Enable()   // btnbmp
OMABAJO:Enable()  // btnbmp
DDETALVENT:lProcess := .F.
//Depura("FinEdit2")
DDETALVENT:SetFocus()
//Depura("FinEdit3")
SYSREFRESH()
//Depura("FinEdit4")
//Depura(nKey, "FinEdit-nkey")
If nKey != NIL
   DDETALVENT:Mensaje(nKey)
eNDiF
nP--
//Depura(nP, "np")
//syswait(1)
//Depura("FinEdit9")
//Depura("FinEdit9"*23)
RETURN nKeyRet
//----------------------------------------------------------------------------//

Posted: Tue Jul 01, 2008 8:52 am
by Antonio Linares
Como funciona la función Depura() ?

Muestra un mensaje en pantalla ?

En caso de ser asi, cámbiala para que escriba en un fichero. Puedes usar la función LogFile( cNomreFichero, { datos, ... } ) de FiveWin.

Posted: Tue Jul 01, 2008 10:57 am
by miarcod
Antonio:

La función depura() envia un valor al depurador que vengo utilizando desde que comencé a utilizar fivewin.

A continuación te pongo la función así como otras realacionadas

Un saludo

Code: Select all

FUNCTION Depura(xValue, cTitulo, cTitArr)
Local cValue, i, csalida
cValue := "Tipo no definido"

DO CASE
   CASE xValue == NIL
       cValue := "Nil"
   CASE Valtype(xValue) == "A"
       SayArray(xValue)
       RETURN NIL
   CASE ValType(xValue) == "B"
         cValue := "Bloque de Codigo: {||...}"
   CASE Valtype(xValue) == "C"
        cValue := 'C=> "' + xValue + '"'
   CASE Valtype(xValue) == "L"
        cValue := "L=> " + IIF(xValue, ".T.", ".F.")
   CASE Valtype(xValue) == "D"
        cValue := "D=> " + DTOC(xValue)
   CASE Valtype(xValue) == "N"
        cValue := "N=> " + STR(xValue,34,15)
   CASE Valtype(xValue) == "O"
        cValue := "O=> " + xValue:ClassName()
ENDCASE

cSalida := ""

If cTitulo != nil
   cSalida += cTitulo  //+ " => " + cValue
EndIf
If cTitArr != nil
   cSalida += cTitArr
EndIf
cSalida += " => " + cValue

OutputDebugString( cSalida + CRLF )
If ValType(xValue) == "B"
//   DEPURA(eval(xValue))
EndIf
//sysrefresh()
RETURN NIL

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

FUNCTION SayArray(xValue, cTitulo, cTitArr)
Local i, i2, cSalida
STATIC aArray := {}
STATIC nEntradas := 0
nEntradas ++

If len(xValue) == 0
   If cTitArr != nil .and. len(cTitArr) > 0
      cTitArr := left(ctitArr, len(cTitArr)-1)
      DEPURA(NIL, cTitulo, cTitArr + "]" )
   Else
      cTitArr := ""
   EndIf
   ASIZE(aArray, len(aArray)-1 )
   RETURN NIL
EndIf

for i = 1 to len(xValue)
    if Valtype(xValue[i]) == "A"
       AADD(aArray, i)
       cSalida := "["
       for i2 = 1 to LEN(aArray)
           cSalida += Alltrim(str(aArray[i2]))
           cSalida += ","
       next i
       SayArray( xValue[i], cTitulo, cSalida)
       loop
   EndIf

   If cTitArr != nil
       cSalida := cTitArr + Alltrim(str(i))
   Else
       cSalida :=  "[" + Alltrim(str(i))
   EndIf
     DEPURA(xValue[i], cTitulo, cSalida + "]" )
next i
nEntradas --
ASIZE(aArray, len(aArray)-1 )
RETURN NIL

FUNCTION aCaracter(xValue)
Local cValue
DO CASE
   CASE xValue == NIL
       cValue := "Nil"
   CASE Valtype(xValue) == "A"
       cValue := "Array [" + ALLTRIM(STR(len(xValue))) + "]"
       RETURN NIL
   CASE ValType(xValue) == "B"
         cValue := "Bloque de Codigo: {||...}"
   CASE Valtype(xValue) == "C"
        cValue :=  xValue
   CASE Valtype(xValue) == "L"
        cValue := IIF(xValue, ".T.", ".F.")
   CASE Valtype(xValue) == "D"
        cValue := DTOC(xValue)
   CASE Valtype(xValue) == "N"
        cValue := STR(xValue,34,15)
   CASE Valtype(xValue) == "O"
        cValue := xValue:ClassName()
ENDCASE
RETURN cValue


Posted: Tue Jul 01, 2008 11:15 am
by Antonio Linares
La aplicación está en 32 bits ?

Este problema es típico al tardar mucho en actualizarse a una versión nueva. Ahora es muy dificil de determinar de donde pueda venir el cambio que afecta a tu código. No digo que sea tu culpa :-) sino que ahora es dificil de determinar su origen.

Puedes intentar proporcionar un ejemplo pequeño y autocontenido que lo reproduzca ? gracias,

Posted: Tue Jul 01, 2008 9:47 pm
by miarcod
Bueno, despues de toda la tarde investigando he llegado a la conclusión (no se si estaré en lo cierto) de que el problema esta en el siguiente codigo

Code: Select all

METHOD Mensaje( nKey ) CLASS TMBrowse
If nKey != NIL .and. nKey != 0
   ::SetFocus()
   ::PostMsg( WM_KEYDOWN, nKey, nMakeLong( 0, 0 ) )
EndIf
RETURN 0
Desde el principio, para controlar la navegación por el browse le enviaba mensajes al objeto tcbrowse mendiante la función PostMsg(), por ejemplo cuando valido un código en una celda del browse y es correcto, muevo la celda a la derecha con goRight() y le envio un ENTER con este método.

Esto es como lo vengo haciendo desde fw 2.0, pero ahora se produce este error.

Si provoco un error en el metodo de edición obtengo esta lista de llamadas en la que se encuentra MIFINEDIT que es la función que envía la tecla que quiero que se procese

Stack Calls
===========
Called from LOCKERRHAN(0)
Called from (b)INITHANDL$(0)
Called from TMBROWSE:LEDITCOL(225)
Called from MIKEYDOWN(952)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(399)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from MIFINEDIT(1145)
Called from MIKEYDOWN(965)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(399)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from MIFINEDIT(1145)
Called from MIKEYDOWN(965)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(399)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from MIFINEDIT(1145)
Called from MIKEYDOWN(965)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(399)
Called from TMBROWSE:HANDLEEVEN(0)
Called from DIALOGBOX(0)
Called from TDIALOG:ACTIVATE(0)
Called from ALBARAN(494)
Called from EJECUTAR(379)
Called from TRABAJA(510)
Called from EJECUTA(503)
Called from (b)BARRABOTON(450)
Called from TBTNBMP:CLICK(337)
Called from TBTNBMP:LBUTTONUP(511)
Called from TBTNBMP:HANDLEEVEN(0)
Called from TBTNBMP:HANDLEEVEN(846)
Called from WINRUN(0)
Called from TWINDOW:ACTIVATE(0)
Called from MAIN(302)

Posted: Wed Jul 02, 2008 9:37 am
by miarcod
Hola de nuevo,

Ahora he descubierto lo siguiente:

Si anulo la función MiFinEdit, y pongo el código que se ejecuta en la función dentro de la funcion origen MiKeyDown el proceso continúa bien.

Pero lo que no entiendo porque no puedo ejecutar el codigo desde una funcion.

Esto es lo que funciona mal

Code: Select all

#DEFINE NOKEY 0
#DEFINE DDETALVENT   oAlbaran:aRestoCnt[1]		// Objeto TCBrowse
#DEFINE DDETALMOBR   oAlbaran:aRestoCnt[2]		// Objeto TCBrowse (no está visible)

...
//---------------------------------------------------//
STATIC FUNCTION MikeyDown(nKey, nFlags, oAlbaran)
....
Self := DDETALVENT
nP++ 	// Variable statica que indica si salio de la función

// Edicion de la celda deVuelve .T. si se finaliza con enter, .f. si se pulsa escape o se sale con otra tecla
lSalida := ::lEditCol( ::nColAct, @uTemp, cPicture,,CLR_BLACK, CLR_YELLOW )
...
// Se verifica el valor introducido y se devuelve un valor que corresponde con la siguiente tecla que se va a procesar
nKey := 0
nKey :=  VerificaCol( oAlbaran )

if nKey != 0
   Return MiFinEdit(oAlbaran, nKey, @nP, NOKEY)
EndIf
....

//---------------------------------------------------//
STATIC FUNCTION MiFinEdit(oAlbaran,nKey, nP, nKeyRet)
DDETALVENT:lProcess := .F.			// Data agregada a la clase indica que ese está procesando una edición de celda
If nKey != NIL
   DDETALVENT:Mensaje(nKey)			// 
eNDiF
nP--


//---------------------------------------------------//
// Envia una pulsación de teclado al objeto Browse
METHOD Mensaje( nKey ) CLASS TMBrowse
If nKey != NIL .and. nKey != 0
   ::SetFocus()
   ::PostMsg( WM_KEYDOWN, nKey, nMakeLong( 0, 0 ) )
EndIf
RETURN 0
Esto es lo que cambio y funciona bien

Code: Select all


if nKey != 0
   //Return MiFinEdit(oAlbaran, nKey, @nP, NOKEY)
    ::lProcess := .F.
    ::SetFocus()
    ::Mensaje(nKey)
     nP--
    Return 0
EndIf
No entiendo nada?????

Gracias

Posted: Wed Jul 02, 2008 12:15 pm
by miarcod
¿alguna sugerencia?

Gracias

Posted: Wed Jul 02, 2008 12:42 pm
by Antonio Linares
> Esto es como lo vengo haciendo desde fw 2.0, pero ahora se produce este error.

Has puesto la pila de llamadas pero no has especificado cual es el error que te aparece :-)

Por favor indica cual es el error, que asi posiblemente podamos solucionarlo rapidamente. Gracias,

Posted: Wed Jul 02, 2008 2:53 pm
by miarcod
El error que se produce es el siguiente:

Aparece una ventana con el titulo Clipper internal error:

TMIGET:HANDLEEVEN(0) Unrecoverable error 650: Processor stack fault

y desaparece la pantalla.

Se produce en el método leditcol del tcbrowse. para ver la pila de llamadas lo que hice fue poner una variable estatica dentro de este método y un error de programación que se produce en un número de accesos, con lo cual veo la pila de llamadas antes de que se produzca el error que no puedo detectar.

Un saludo.

PD.
De momento sigo utilizando clipper, ya que la idea es pasar a harbour pero tengo que rediseñar todas las pantallas de la aplicación y son muchas, por lo que para seguir trabajando en el programa necesito que corra en clipper, además entiendo que si funciona bien en clipper no debería tener problemas con harbour, si no me funciona bien con clipper, me puedo volver loco para saber si un mal funcionamiento es causa de harbour o mio. Mientras no consiga estabilizar el sistema en clipper no me planteo el cambio a harbour

Posted: Wed Jul 02, 2008 4:23 pm
by Antonio Linares
> TMIGET:HANDLEEVEN(0) Unrecoverable error 650: Processor stack fault

Parece que usas una clase TMiGet tuya.

El error 650 significa un error recursivo que acaba rompiendo la pila de la maquina virtual. Posiblemente una funcion o metodo que se llama a si mismo.

Revisa el codigo de esa clase TMiGet.

Posted: Wed Jul 02, 2008 5:08 pm
by miarcod
Gracias Antonio,

Bueno, he modificado el metodo editcol y le he vuelto a poner el get original ahora se produce el error al intentar activar el dialogo que contiene el get.

Code: Select all

METHOD lEditCol( nCol, uVar, cPicture, bValid, nClrFore, nClrBack, ;
                 cMsg, cError ) CLASS TMBrowse

   static i:=0

   local oDlg, oGet, oFont, oBtn
   local nWidth := ::aColSizes[ nCol ]
   local uTemp  := uVar, aDim, lOk := .f.
   local lDropBox := ( ValType( uVar )== "L" .and. ::lLogicDrop )
   local nI, nStartCol := 0, lLogicDrop := ::lLogicDrop

   i++
   //DEPURA(i,"LEDITCOL1")
   If  !::lGetModal
       Alert("Pedir No Modal")
       Return( ::NEditCol( nCol, uVar, cPicture, bValid, nClrFore,;
                           nClrBack, cMsg, cError ) )
   EndIf

   if ::nFreeze > 0
     for nI := 1 to Min(::nFreeze , nCol - 1 )
       nStartCol += ::GetColSizes()[ nI ]
     next
   endif

   for nI := ::nColPos to nCol - 1
     nStartCol += ::aColSizes[ nI ]
   next

   DEFAULT nClrFore := ::nClrText, nClrBack := ::nClrPane

   if ValType( Eval( ::aColumns[ nCol ]:bData ) ) == "M"
      if MemoEdit( @uTemp, "Editing: " + ::aColumns[ nCol ]:cHeading )
         uVar = uTemp
         return .t.
      else
         return .f.
      endif
   endif

   //DEPURA(i,"LEDITCOL5")

   if ::oFont != nil .and. ! Empty( ::oFont:nHeight )
     // added default font of system 14 500 weight
     oFont = TFont():New( ::oFont:cFaceName, ::oFont:nWidth,;
              If( Abs( ::oFont:nHeight ) < 14, 14, ::oFont:nHeight ), .f., ;
                ::oFont:lBold, nil, nil, If(::oFont:lBold, nil, 500) )
   endif

   aDim := aTCBrWPosRect( ::hWnd, ::nRowPos, nStartCol, nWidth, ;
                          If( ::oFont != nil, ::oFont:hFont, 0 ) )

   DEFINE DIALOG oDlg OF ::oWnd  FROM aDim[ 1 ], aDim[ 2 ] TO aDim[ 3 ], aDim[ 4 ] ;
      STYLE nOR( WS_VISIBLE, WS_POPUP ) PIXEL

   if ( lDropBox )
      uTemp = If( uVar, "Yes", "No" )
      oGet := TComboBox():New( 0, 0, bSETGET(uTemp), { "Yes", "No" }, ;
              aDim[ 4 ] - aDim[ 2 ], 32, oDlg, , , bValid, nClrFore, ;
              nClrBack, .t., oFont, cMsg )  // 32 was 100
      oGet:oGet := oGet
      //oGet:cError := cError
   else
     /*
      oGet := TMiGet():New( 0, 0, bSETGET(uTemp), oDlg, ;
               aDim[ 4 ] - aDim[ 2 ], aDim[ 3 ] - aDim[ 1 ], ;
               cPicture, bValid, nClrFore, nClrBack, oFont )
      oGet:cMsg     := cMsg
      oGet:lSalirUp := .T.
      if ::aFuncs[ ::nColAct ] != nil
         oGet:lPasarValor := .T.
         oGet:aFunciones := ::aFuncs[ ::nColAct ]
      endif
      */
      oGet := Get():New( 0, 0, bSETGET(uTemp), oDlg, ;
               aDim[ 4 ] - aDim[ 2 ], aDim[ 3 ] - aDim[ 1 ], ;
               cPicture, bValid, nClrFore, nClrBack, oFont )

   endif

   DEPURA(i,"LEDITCOL7")

   If i == 6
      i=i+"Hola"
   EndIf

   @ 10, 0 BUTTON oBtn PROMPT "" ACTION ( oDlg:End(), lOk := .t. ) OF oDlg

   oBtn:nStyle = nOr( WS_CHILD, WS_VISIBLE, BS_DEFPUSHBUTTON )
   ::lColAnt    := .F.
   ::lNoActuliz := .F.
   sysrefresh()
   ACTIVATE DIALOG oDlg ;
      ON INIT ( oDlg:Move( aDim[ 1 ], aDim[ 2 ] + 1,;
                           aDim[ 4 ] - aDim[ 2 ], aDim[ 3 ] - aDim[ 1 ] ),;
                If( lDropBox,;
                oGet:Move( -5, -2, aDim[ 4 ] - aDim[ 2 ] + 3, 22 ), ;// 22 was 80
                oGet:Move( -2, -1, aDim[ 4 ] - aDim[ 2 ] + 3, ;
                           aDim[ 3 ] - aDim[ 1 ] + 6 ) ) )

   //DEPURA(i,"LEDITCOL7.5")
   if lOk
     if ( lDropBox )
        uVar = ( uTemp == "Yes" )
     else
        uVar = uTemp
     endif
   endif

   if oGet:nLastkey == VK_RETURN
      ::lNoActuliz := .T.
      return .t.
   endif

   if oDlg:cargo == "arriba"
      ::lColAnt    := .T.
   endif

   //DEPURA(i,"LEDITCOL9")

return lOk

El error que se produce es el siguiente:

Application
===========
Path and name: X:\CEPP\FUENTES\FW\GESTION\wingest.exe (16 bits)
Size: 8,211,200 bytes
Max files handles permited: ( SetHandleCount() ) 255
Time from start: 0 hours 0 mins 7 secs
Error occurred at: 02-07-2008, 19:00:55
Error description: Error Objects/6 No Exp. Method: _GET:MOVE

Stack Calls
===========
Called from LOCKERRHAN(0)
Called from (b)INITHANDL$(0)
Called from _GET:MOVE(0)
Called from (b)LEDITCOL(244)
Called from TDIALOG:INITIATE(0)
Called from TDIALOG:HANDLEEVEN(0)
Called from DIALOGBOXI(0)
Called from TDIALOG:ACTIVATE(0)
Called from TMBROWSE:LEDITCOL(244)
Called from MIKEYDOWN(953)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(402)
Called from TMBROWSE:HANDLEEVEN(0)
Called from DIALOGBOX(0)
Called from TDIALOG:ACTIVATE(0)
Called from ALBARAN(494)
Called from EJECUTAR(379)
Called from TRABAJA(513)
Called from EJECUTA(506)
Called from (b)BARRABOTON(453)
Called from TBTNBMP:CLICK(337)
Called from TBTNBMP:LBUTTONUP(511)
Called from TBTNBMP:HANDLEEVEN(0)
Called from TBTNBMP:HANDLEEVEN(846)
Called from WINRUN(0)
Called from TWINDOW:ACTIVATE(0)
Called from MAIN(305)

System
======
CPU type: AMD Athlon(tm) 64 X2 Dual Core Processor 6000+
Hardware memory: 2048 megs

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

Compiler version: Clipper (R) 5.3b Intl. (Rev. 338) (1997.04.25)
Windows and MsDos versions: 3.95, 5.0

Windows total applications running: 7
1 C:\WINDOWS\SYSTEM32\USER.EXE
2 explorer.exe
3 DBWIN.exe
4 X:\CEPP\FUENTES\FW\GESTION\wingest.exe
5 med.exe
6 C:\WINDOWS\SYSTEM32\MMSYSTEM.DLL
7 C:\WINDOWS\SYSTEM32\WOWEXEC.EXE

Variables in use
================
Procedure Type Value
==========================
LOCKERRHAN
Param 1: O Class: ERROR
Param 2: B { || ... } CodeBlock
(b)INITHANDL$
Param 1: O Class: ERROR
_GET:MOVE
Param 1: N -2
Param 2: N -1
Param 3: N 99
Param 4: N 20
(b)LEDITCOL
Param 1: O Class: TDIALOG
TDIALOG:INITIATE
Param 1: N 1928
Param 2: N 1860
Local 1: O Class: TDIALOG
Local 2: L .T.
Local 3: U
Local 4: U
Local 5: L .F.
Local 6: U
TDIALOG:HANDLEEVEN
Param 1: N 272
Param 2: N 1928
Param 3: N 1860
DIALOGBOXI
Param 1: N 7198
Param 2: C "

Posted: Wed Jul 02, 2008 5:13 pm
by miarcod
Antonio,

no hagas caso del mensaje anterior, la clase que tenia que usar era Tget y no get

Sigo probando

Gracias

Un saludo

Posted: Wed Jul 02, 2008 5:18 pm
by miarcod
Nada. Si utilizo la clase get original se sigue produciendo el mismo error

Called from LOCKERRHAN(0)
Called from (b)INITHANDL$(0)
Called from TMBROWSE:LEDITCOL(230)
Called from MIKEYDOWN(953)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(405)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from FINEDIT(1184)
Called from MIKEYDOWN(967)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(405)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from FINEDIT(1184)
Called from MIKEYDOWN(967)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(405)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from FINEDIT(1184)
Called from MIKEYDOWN(967)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(405)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from FINEDIT(1184)
Called from MIKEYDOWN(967)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(405)
Called from TMBROWSE:HANDLEEVEN(0)
Called from SYSREFRESH(0)
Called from FINEDIT(1184)
Called from MIKEYDOWN(967)
Called from (b)LVENTAS(142)
Called from TMBROWSE:KEYDOWN(405)
Called from TMBROWSE:HANDLEEVEN(0)
Called from DIALOGBOX(0)
Called from TDIALOG:ACTIVATE(0)
Called from ALBARAN(494)
Called from EJECUTAR(379)
Called from TRABAJA(513)
Called from EJECUTA(506)
Called from (b)BARRABOTON(453)
Called from TBTNBMP:CLICK(337)
Called from TBTNBMP:LBUTTONUP(511)
Called from TBTNBMP:HANDLEEVEN(0)
Called from TBTNBMP:HANDLEEVEN(846)
Called from WINRUN(0)
Called from TWINDOW:ACTIVATE(0)
Called from MAIN(305)

Posted: Wed Jul 02, 2008 5:37 pm
by Antonio Linares
El error 650 ?

Es que no has puesto la descripción del error :-)