FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Como puedo compilar una classe?
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 06:59 PM

La librer铆a que te falta es xhb.lib de Harbour, pero lo que me sorprende es que estas usando xHarbour, si ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Wed May 08, 2013 07:13 PM

Tienes #include "hbcompat.ch" dentro de source/classes/xbrowse.prg ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Thu May 09, 2013 04:53 PM

Compilo con xHarbour y hbcompat.ch est谩 en las cabeceras de xbrowse.

Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquer铆as visual.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Thu May 09, 2013 05:21 PM

A帽ade esta funci贸n a tu PRG principal y deber铆a desaparecer una de esas referencias sin resolver:

function hb_HKeyAt( x, y )

return HGetKeyAt( x, y )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Thu May 09, 2013 05:26 PM

Tambien esta:

function HB_HVALUEAT( x, y, z )

return HGetValueAt( x, y, z )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Fri May 10, 2013 01:45 PM
Antonio, gracias por la respuesta, ha mejorado el tema, ahora son s贸lo dos funciones que no s茅 de d贸nde engancharlas.

Code (fw): Select all Collapse
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
rmail.c:
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Unresolved external '_png_set_longjmp_fn' referenced from C:\FWH\LIB\FIVEHC.LIB|FWPNG
Error: Unresolved external '_HB_FUN_HB_HCASEMATCH' referenced from C:\FWH\LIB\FIVEHX.LIB|xbrowse
* Linking errors *


Gracias.
Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquer铆as visual.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Fri May 10, 2013 01:51 PM

A帽ade esta tambien:

function HCASEMATCH( x, y )

return HGetCaseMatch( x, y )

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Fri May 10, 2013 01:53 PM

Estas enlazando png.lib de xHarbour ?

me da la sensaci贸n de que tienes mezcladas librerias antiguas y nuevas...

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Fri May 10, 2013 02:00 PM
He agregado las 3 funciones que me has descrito en el c贸digo de xBrowse

Code (fw): Select all Collapse
//----------------------------------------------------------------------------//

function hb_HKeyAt( x, y )

return HGetKeyAt( x, y )

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

function HB_HVALUEAT( x, y, z )

return HGetValueAt( x, y, z )

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

function HCASEMATCH( x, y )

return HGetCaseMatch( x, y )

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


y a煤n as铆, e incluyendo la xhb.lib el resultado es el mismo anterior. Sigue reclamando la funci贸n _HB_FUN_HB_HCASEMATCH
Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquer铆as visual.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Fri May 10, 2013 02:02 PM
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Fri May 10, 2013 02:28 PM
Gracias Antonio, al final lo logr茅, un poco duro de cabeza el alumno... Muchas gracias.

Pregunta: Tengo FWH 12.04, y agregu茅 una modificaci贸n publicada para cargar png en los btnbmp, s贸lo me funciona en botones y no en una btnbar 驴Qu茅 me falta?

El c贸digo cambiado es el siguiente:

Code (fw): Select all Collapse
/*METHOD LoadBitmaps( cResName1, cResName2, cBmpFile1, cBmpFile2,;
                    cResName3, cBmpFile3, cResName4, cBmpFile4 ) CLASS TBtnBmp

   local aBmpPal

   if ! Empty( cResName1 )
      aBmpPal = PalBmpLoad( cResName1 )
      ::hBitmap1  = aBmpPal[ 1 ]
      ::hPalette1 = aBmpPal[ 2 ]
      ::HasAlpha( ::hBitmap1, BTN_UP )
   endif

   if ! Empty( cResName2 )
      aBmpPal = PalBmpLoad( cResName2 )
      ::hBitmap2  = aBmpPal[ 1 ]
      ::hPalette2 = aBmpPal[ 2 ]
      ::HasAlpha( ::hBitmap2, BTN_DOWN )
   endif

   if ! Empty( cResName3 )
      aBmpPal = PalBmpLoad( cResName3 )
      ::hBitmap3  = aBmpPal[ 1 ]
      ::hPalette3 = aBmpPal[ 2 ]
      ::HasAlpha( ::hBitmap3, BTN_DISABLE )
   endif

   if ! Empty( cResName4 )
      aBmpPal = PalBmpLoad( cResName4 )
      ::hBitmap4  = aBmpPal[ 1 ]
      ::hPalette4 = aBmpPal[ 2 ]
      ::HasAlpha( ::hBitmap4, BTN_OVERMOUSE )
   endif


   if ! Empty( cBmpFile1 )
      if File( cBmpFile1 )
         ::cBmpFile1 = cBmpFile1
         aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile1 )
         ::hBitmap1  = aBmpPal[ 1 ]
         ::hPalette1 = aBmpPal[ 2 ]
         ::HasAlpha( ::hBitmap1, BTN_UP )
         ::ReleaseDC()
      endif
   endif

   if ! Empty( cBmpFile2 )
      if File( cBmpFile2 )
         ::cBmpFile2 = cBmpFile2
         aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile2 )
         ::hBitmap2  = aBmpPal[ 1 ]
         ::hPalette2 = aBmpPal[ 2 ]
         ::HasAlpha( ::hBitmap2, BTN_DOWN )
         ::ReleaseDC()
      endif
   endif

   if ! Empty( cBmpFile3 )
      if File( cBmpFile3 )
         ::cBmpFile3 = cBmpFile3
         aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile3 )
         ::hBitmap3  = aBmpPal[ 1 ]
         ::hPalette3 = aBmpPal[ 2 ]
         ::HasAlpha( ::hBitmap3, BTN_DISABLE )
         ::ReleaseDC()
      endif
   endif

   if ! Empty( cBmpFile4 )
      if File( cBmpFile4 )
         ::cBmpFile4 = cBmpFile4
         aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile4 )
         ::hBitmap4  = aBmpPal[ 1 ]
         ::hPalette4 = aBmpPal[ 2 ]
         ::HasAlpha( ::hBitmap4, BTN_OVERMOUSE )
         ::ReleaseDC()
      endif
   endif


   if ! Empty( ::hBitmap1 )
      PalBmpNew( ::hWnd, ::hBitmap1, ::hPalette1 )

   endif

   if ! Empty( ::hBitmap2 )
      PalBmpNew( ::hWnd, ::hBitmap2, ::hPalette2 )
   endif

   if ! Empty( ::hBitmap3 )
      PalBmpNew( ::hWnd, ::hBitmap3, ::hPalette3 )
   endif

   if ! Empty( ::hBitmap4 )
      PalBmpNew( ::hWnd, ::hBitmap4, ::hPalette4 )
   endif

return nil*/
METHOD LoadBitmaps( cResName1, cResName2, cBmpFile1, cBmpFile2,;
                    cResName3, cBmpFile3, cResName4, cBmpFile4 ) CLASS TBtnBmp

  local aBmpPal
  *MsgAlert("Estoy en ::LoadBitmaps()")
  if ! Empty( cResName1 )
     IF  FindResource( GetResources(), cResName1 , 10 )  != 0
         ::hBitmap1  =  FILoadFromMemory( cResToStr( cResName1, 10 ), 10 )
         ::hPalette1 = 0
     ELSE
        aBmpPal = PalBmpLoad( cResName1 )
        ::hBitmap1  = aBmpPal[ 1 ]
        ::hPalette1 = aBmpPal[ 2 ]
     endif
     ::HasAlpha( ::hBitmap1, BTN_UP )
  endif

  if ! Empty( cResName2 )
   IF  FindResource( GetResources(), cResName2 , 10 )  != 0
         ::hBitmap2  =  FILoadFromMemory( cResToStr( cResName2, 10 ), 10 )
         ::hPalette2 = 0
     ELSE
         aBmpPal = PalBmpLoad( cResName2 )
         ::hBitmap2  = aBmpPal[ 1 ]
         ::hPalette2 = aBmpPal[ 2 ]
     endif
      ::HasAlpha( ::hBitmap2, BTN_DOWN )
   endif

   if ! Empty( cResName3 )
     IF  FindResource( GetResources(), cResName3 , 10 )  != 0
         ::hBitmap3  =  FILoadFromMemory( cResToStr( cResName3, 10 ), 10 )
         ::hPalette3 = 0
     ELSE
         aBmpPal = PalBmpLoad( cResName3 )
         ::hBitmap3  = aBmpPal[ 1 ]
         ::hPalette3 = aBmpPal[ 2 ]
     endif
     ::HasAlpha( ::hBitmap3, BTN_DISABLE )
   endif

   if ! Empty( cResName4 )
     IF  FindResource( GetResources(), cResName4 , 10 )  != 0
         ::hBitmap4  =  FILoadFromMemory( cResToStr( cResName4, 10 ), 10 )
         ::hPalette4 = 0
     ELSE
         aBmpPal = PalBmpLoad( cResName4 )
         ::hBitmap4  = aBmpPal[ 1 ]
         ::hPalette4 = aBmpPal[ 2 ]
     endif
     ::HasAlpha( ::hBitmap4, BTN_OVERMOUSE )
   endif

   if ! Empty( cBmpFile1 )
      if File( cBmpFile1 )
         ::cBmpFile1 = cBmpFile1
         IF upper(right(cBmpFile1,3))="PNG"
            ::hBitmap1  = FWOpenPngFile( cBmpFile1 )
            ::hPalette1 = 0
         else
            aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile1 )
            ::hBitmap1  = aBmpPal[ 1 ]
            ::hPalette1 = aBmpPal[ 2 ]
                ::ReleaseDC()
         endif
         ::HasAlpha( ::hBitmap1, BTN_UP )
      endif
   endif

   if ! Empty( cBmpFile2 )
      if File( cBmpFile2 )
         ::cBmpFile2 = cBmpFile2
         IF upper(right(cBmpFile2,3))="PNG"
            ::hBitmap2  = FWOpenPngFile( cBmpFile2 )
            ::hPalette2 = 0
         else
            aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile2 )
            ::hBitmap2  = aBmpPal[ 1 ]
            ::hPalette2 = aBmpPal[ 2 ]
                ::ReleaseDC()
         endif
         ::HasAlpha( ::hBitmap2, BTN_DOWN )

      endif
   endif

   if ! Empty( cBmpFile3 )
      if File( cBmpFile3 )
         ::cBmpFile3 = cBmpFile3
         IF upper(right(cBmpFile3,3))="PNG"
            ::hBitmap3  = FWOpenPngFile( cBmpFile3 )
            ::hPalette3 = 0
         else
            aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile3 )
           ::hBitmap3  = aBmpPal[ 1 ]
           ::hPalette3 = aBmpPal[ 2 ]
              ::ReleaseDC()
         endif
         ::HasAlpha( ::hBitmap3, BTN_DISABLE )
      endif
   endif

   if ! Empty( cBmpFile4 )
      if File( cBmpFile4 )
         ::cBmpFile4 = cBmpFile4
         IF upper(right(cBmpFile4,3))="PNG"
            ::hBitmap4  = FWOpenPngFile( cBmpFile4 )
            ::hPalette4 = 0
         else
            aBmpPal     = PalBmpRead( ::GetDC(), cBmpFile4 )
           ::hBitmap4  = aBmpPal[ 1 ]
           ::hPalette4 = aBmpPal[ 2 ]
              ::ReleaseDC()
         endif
         ::HasAlpha( ::hBitmap4, BTN_OVERMOUSE )
      endif
   endif


   if ! Empty( ::hBitmap1 )
      PalBmpNew( ::hWnd, ::hBitmap1, ::hPalette1 )

   endif

   if ! Empty( ::hBitmap2 )
      PalBmpNew( ::hWnd, ::hBitmap2, ::hPalette2 )
   endif

   if ! Empty( ::hBitmap3 )
      PalBmpNew( ::hWnd, ::hBitmap3, ::hPalette3 )
   endif

   if ! Empty( ::hBitmap4 )
      PalBmpNew( ::hWnd, ::hBitmap4, ::hPalette4 )
   endif

return nil


De Antemano, Gracias.
Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquer铆as visual.
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Como puedo compilar una classe?
Posted: Fri May 10, 2013 04:21 PM

Estas cargando los PNGs desde ficheros 贸 desde recursos ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 66
Joined: Thu Jan 03, 2013 06:13 PM
Re: Como puedo compilar una classe?
Posted: Mon May 13, 2013 01:28 PM

Desde Ficheros

Fivewin 12.04 + xHarbour 1.2.1 + BCC582



Nada como Fivewin, odio visual basic, visual studio y todas las porquer铆as visual.

Continue the discussion