FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Primer intento de migracion xharbour a HARBOUR (SOLUCIONADO)
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Primer intento de migracion xharbour a HARBOUR (SOLUCIONADO)
Posted: Sun Jun 22, 2014 07:22 PM
Hola amigos del foro.
Estoy haciendo mis primeras pruebas intentando migrar a Harbour. Con mi actual version de xHarbour_bcc582_20120330 y FWH1402, todos mis programas esta corriendo perfectamente. (ningun problema)

Sin embargo, al tratar de compilar con Harbour_bcc582_20131007 (bajado desde link suministrado por el Maestro Linares), compile bien, pero al ejecutar cierta opción, obtengo los siguientes errores:

Application
===========
Path and name: C:\WNOMIPQ32\WNOMIPQ.exe (32 bits)
Size: 2,564,096 bytes
Compiler version: Harbour 3.2.0dev (r1307082134)
FiveWin Version: FWH 12.03
Windows version: 6.1, Build 7601 Service Pack 1

Time from start: 0 hours 55 mins 37 secs
Error occurred at: 22/06/2014, 12:55:00
Error description: Error BASE/1081 Argument error: +
Args:
[ 1] = N 39
[ 2] = U

Stack Calls
===========
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTCELL( 9690 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTDATA( 9561 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT( 1434 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY( 1253 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1666 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 11632 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3153 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 270 )
Called from: .\source\function\ERRSYSW.PRG => ERRORDIALOG( 426 )
Called from: .\source\function\ERRSYSW.PRG => (b)ERRORSYS( 31 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTCELL( 9690 )
Called from: .\source\classes\XBROWSE.PRG => TXBRWCOLUMN:PAINTDATA( 9561 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:PAINT( 1434 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:DISPLAY( 1253 )
Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1666 )
Called from: .\source\classes\XBROWSE.PRG => TXBROWSE:HANDLEEVENT( 11632 )
Called from: .\source\classes\WINDOW.PRG => _FWH( 3153 )
Called from: => DIALOGBOX( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 270 )
Called from: WNOMIPQ.prg => GRABAR( 178 )
Called from: WNOMIPQ.prg => (b)BUILDMENU( 237 )


Code (fw): Select all Collapse
METHOD PaintData( nRow, nCol, nHeight, lHighLite, lSelected, nOrder, nPaintRow ) CLASS TXBrwColumn

   local oCol, n, nDataHeight

   if nCol != nil
      ::nDisplayCol := nCol
   else
      nCol := ::nDisplayCol
   endif
   if ::oBrw:lTransparent .and. Empty( ::oBrw:nRowDividerStyle )      //nuevo, agregado
      nHeight     -= ROW_EXTRAHEIGHT
   endif      //<---  ESTA ES LA LINEA 9690                                        //fin nuevo, agregado
   nDataHeight    := If( Empty( ::aRows ), nHeight, IfNil( ::nCellHeight, ::DataHeight() ) )
   ::PaintCell( nRow, nCol, nDataHeight, lHighLite, lSelected, nOrder, nPaintRow )
   ...
   ...

Como dije anteriormente, este method ha trabajado perfecto con XHARBOUR.

Ademas de lo anterior: HARBOUR no reconoce la function CurDrive()

¿ Pueden darme una manito, para probar HARBOUR_bcc582_20131007 ?

Gracias de antemano.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Sun Jun 22, 2014 07:44 PM

Francisco
Usa hb_CurDrive
En cuanto al problema con el xbrowse, lo miraré a ver si veo que puede ser, aunque creo que el problema no está en la clase sino en la definición de tu código del browse (si puedes poner la definición del xbrowse, quizás sea más fácil ver algo)
Doy por hecho que has vuelto a compilar tu xbrowse con harbour y lo has incluído en tu proyecto

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Sun Jun 22, 2014 07:51 PM

Cristobal, gracias. Lo de hb_CurDrive() está arreglado.
Voy a codificar un ejemplo autocontenido y lo subo.
Gracias, nuevamente.

Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Sun Jun 22, 2014 07:54 PM

Francisco
Asegúrate antes que has incluído tu XBrowse en el proyecto y no está tomando el de FWH

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Sun Jun 22, 2014 11:33 PM
Cristóbal. Muy agradecido por tu tiempo e interés.
Lo acabo de resolver, después de dar "mas vueltas que un trompo".
El caso es que HARBOUR da el mencionado error si usamos: (xHarbour trabaja bien)
Code (fw): Select all Collapse
   oBrw:aCols[1]:SetColsAsRows(1,2,3 )

    WITH OBJECT oBrw
      :nRowHeight    := 50  //altura de lineas  //CON ESTE AQUI, HARBOUR DA ERROR
    END

Pero si lo usamos en el ON INIT del Dialog, Funciona bien tanto en xHarbour y HARBOUR.

Aqui posteo el ejemplo por si quieren probarlo.
Code (fw): Select all Collapse
#include "FiveWin.ch"
#include "XBROWSE.ch"

//-------------------------
FUNCTION MAIN()
LOCAL oDlg, oBrw
local cAlias,n
local aGradBarSel:= { { 1, RGB(252,232,171)  , RGB(248,220,120) } }
local aGradRowSel:= {{1, RGB(158,175, 194), RGB(130,160,224)}}

  DBUSEAREA(.T.,,"CLIENTES","CLIENTES",.T.)   //en samples
  cAlias:=Alias()

  DEFINE DIALOG oDlg SIZE 500,600 PIXEL TITLE "PRUEBA"

   @2,.50 XBROWSE oBrw OF oDlg ;
      ALIAS cAlias ;
      AUTOCOLS CELL LINES FOOTERS 

     oBrw:CreateFromCode()

   oBrw:aCols[1]:SetColsAsRows(1,2,3 )

    WITH OBJECT oBrw
      :nFreeze       := 1
      :nMarqueeStyle := MARQSTYLE_HIGHLROW  
      :bClrSel       := {|| { nRGB(  0,  0,  0), aGradRowSel } } 
      :bClrSelFocus  := { || { CLR_BLACK, aGradBarSel } } 
      :lKinetic      := .f.
      :lContrastClr  := .f.  
      :nRowHeight    := 50  //altura entre lineas  //CON ESTE AQUI, HARBOUR DA ERROR
      :nColDividerStyle:=LINESTYLE_LIGHTGRAY
      :nRowDividerStyle:=LINESTYLE_LIGHTGRAY

      For n := 1 to len(:aCols)
        :aCols[n]:nHeadStrAlign := AL_CENTER
      Next

      //SUPER HEADERS
      :SetGroupHeader( "DATOS PRINCIPALES", 1,3 )
      :SetGroupHeader( "DATOS RESTANTES",  4,6 ) 
    END

   ACTIVATE DIALOG oDlg CENTERED ;
      ON INIT ( oBrw:SetSize(oDlg:nWidth()-26,oDlg:nHeight()-100) ) //,;
//                oBrw:nRowHeight := 50 )  //PONIENDOLO AQUI TRABAJAN BIEN, AMBOS.

   DBCLOSEALL()

RETURN NIL
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Mon Jun 23, 2014 12:32 AM
Francisco, prueba a poner
Code (fw): Select all Collapse
.../...
oBrw:CreateFromCode()

Al final de todas las definiciones del oBrw
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Mon Jun 23, 2014 01:58 AM
Cristobal.
El mismo error.
Si omitimos :nRowHeight := 50, funciona bien en HARBOUR
Code (fw): Select all Collapse
    WITH OBJECT oBrw
     // :nRowHeight    := 50  //altura entre lineas  //CON ESTE AQUI, HARBOUR DA ERROR
    END
De todas maneras, el programa compilado con HARBOUR esta funcionando bien. Solo que me quedo con la duda del por qué de esto.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Mon Jun 23, 2014 03:45 PM
FranciscoA wrote:Cristobal.
El mismo error.
Si omitimos :nRowHeight := 50, funciona bien en HARBOUR
Code (fw): Select all Collapse
    WITH OBJECT oBrw
     // :nRowHeight    := 50  //altura entre lineas  //CON ESTE AQUI, HARBOUR DA ERROR
    END
De todas maneras, el programa compilado con HARBOUR esta funcionando bien. Solo que me quedo con la duda del por qué de esto.
Saludos.


Francisco, mi comentario iba dirigido al hecho de tenerlo que poner en el ON INIT
Yo tengo hechos muchos XBrowse asi y nunca me ha dado error esa DATA
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Primer intento de migracion xharbour a HARBOUR
Posted: Mon Jun 23, 2014 04:49 PM
cnavarro wrote:
Francisco, mi comentario iba dirigido al hecho de tenerlo que poner en el ON INIT


Cristobal, precisamente eso es lo que no entiendo.

Con xHarbour funciona perfectamente.
Code (fw): Select all Collapse
WITH OBJECT oBrw
      :nRowHeight    := 50  //altura entre lineas  //con xHarbour no hay problema
 END

Pero con HARBOUR tengo que omitir la linea mencionada, y ponerlo en el ON INIT (aunque esto ultimo no es indispensable, pero necesito la altura de 50).

Code (fw): Select all Collapse
  WITH OBJECT oBrw
     // :nRowHeight    := 50  //altura entre lineas  //CON ESTE AQUI, HARBOUR DA ERROR
    END
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM
Re: Primer intento de migracion xharbour a HARBOUR (SOLUCIONADO)
Posted: Mon Jun 23, 2014 05:42 PM

Francisco, el tema me tenía intrigado
No es culpa de Harbour ni de dicha DATA nRowHeight, sino de utilizar el Method -> oBrw:aCols[1]:SetColsAsRows(1,2,3 )
Yo he tenido el mismo error probando con la version Fwh1203
Deja el nRowHeight y comenta esa linea del SetColsAsRow y me cuentas
Pero......, he probado tu ejemplo con la version Fwh1308 y posteriores y se ejecuta sin problemas, por lo que deduzco que es un problema de la utilización de dicho metodo en tu versión.
Si me preguntas por qué en XHarbour te funcionaba? ni idea, pero Harbour es según parece "más delicado" pero por lo que he podido comprobar, más seguro

Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Primer intento de migracion xharbour a HARBOUR (SOLUCIONADO)
Posted: Mon Jun 23, 2014 11:04 PM
cnavarro wrote:
Pero......, he probado tu ejemplo con la version Fwh1308 y posteriores y se ejecuta sin problemas, por lo que deduzco que es un problema de la utilización de dicho metodo en tu versión.

Cristobal.
Estoy de acuerdo contigo. Debe ser mi version FWH1204.
cnavarro wrote:
Si me preguntas por qué en XHarbour te funcionaba? ni idea, pero Harbour es según parece "más delicado" pero por lo que he podido comprobar, más seguro

Tambien concuerdo. Harbour, segun he leido en este foro los post de Antonio, es impresionante.

Por otra parte, el programa (Nóminas) que recién migré a HARBOUR se está comportando bien en las pruebas. Hasta el momento sin problemas. Incluso noto un ligero aumento de velocidad en la apertura de mis dialogos con xbrowse.
De manera general, puedo decir que me ha ido muy bien en esta migración. Probaré con otro de mis programas.
Saludos.
Francisco J. Alegría P.

Chinandega, Nicaragua.



Fwxh-MySql-TMySql

Continue the discussion