FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error al compilar con nueva versi贸n
Posts: 162
Joined: Tue Feb 03, 2009 10:08 PM
Error al compilar con nueva versi贸n
Posted: Thu Feb 26, 2015 07:11 PM
Estoy pasando desdela versi贸n fw 2012_04 con harbour 3.2 y bcc 6.50 a la fw 2014_06 con harbour 3.40 y bcc 6.60.

Se produce un error en tiempo de ejecuci贸n con la clase que despliega un mensaje en forma horizontal:

Este es el error que se produce:
Code (fw): Select all Collapse
Application
===========
   Path and name: J:\fw_samples\_3\_a_say_dinamico.exe (32 bits)
   Size: 2,901,504 bytes
   Compiler version: Harbour 3.4.0dev () (2014-06-29 00:47)
   FiveWin  Version: FWH 14.06
   Windows version: 6.1, Build 7601 Service Pack 1

   Time from start: 0 hours 0 mins 0 secs 
   Error occurred at: 02/26/15, 13:55:03
   Error description: Error BASE/1003  Variable does not exist: SUPER

Stack Calls
===========
   Called from:  => (b)TDSAY( 61 )
   Called from:  => TDSAY:INITIATE( 0 )
   Called from:  => __OBJSENDMSG( 0 )
   Called from: .\source\function\HARBOUR.PRG => OSEND( 278 )
   Called from: .\source\function\HARBOUR.PRG => ASEND( 246 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:INITIATE( 634 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 879 )
   Called from:  => DIALOGBOXINDIRECT( 0 )
   Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 277 )
   Called from:  => MAIN( 31 )


La clase la descargue desde este foro y su inicio es:

Code (fw): Select all Collapse
# include "fivewin.ch" && # include "constant.ch"

# define SS_CENTER             1
# define SS_RIGHT              2
# define SS_GRAYRECT           5 && BOXRECT

# define TA_LEFT               0
# define TA_RIGHT              2
# define TA_CENTER             6
# define TA_TOP                0
# define TA_BOTTOM             8

# define COLOR_WINDOW          5
# define COLOR_WINDOWTEXT      8

# define COLOR_BTNSHADOW      16
# define COLOR_BTNHIGHLIGHT   20

# define WM_NCHITTEST        132  && 0x84

# define GWL_STYLE           -16
# define GWL_EXSTYLE         -20

 #ifdef __XPP__
   # define Super       ::TControl
   # define New             _New
 #ENDIF

* static oTimer, aTimer := {}
Public oTimer, aTimer := {}

* --------------------------------------------------------------------------------------------------------------- *
CLASS TDSay FROM TControl

 CLASSDATA lRegistered AS LOGICAL

  DATA   l3D
  DATA   cPicture
  DATA   aCaption
  DATA   bGet
  DATA   lShaded, lBox, lRaised
  DATA   nDTop, nDLeft
  DATA   nTTop, nTLeft
  DATA   aRect, nLong
  DATA   nTxtWidth, nTxtHeight
  DATA   nAlign
  DATA   oTimer
  DATA   lScroll, lHorizontal, nSpeed, lWrap    && nSpeed: 0 to 100
  DATA   lBlink, lView

  METHOD New ( nRow, nCol, bText, oWnd, cPicture, oFont, lCentered, lRight, lBottom, lBorder, lPixels, nClrText, nClrBack, nWidth, nHeight, cScroll, nSpeed, lWrap, lBlink, lDesign, lUpdate, lShaded, lBox, lRaised ) CONSTRUCTOR
  METHOD ReDefine ( nId, bText, oWnd, cPicture, lCentered, lRight, lBottom, nClrText, nClrBack, cScroll, nSpeed, lWrap, lBlink, lUpdate, oFont, lShaded, lBox, lRaised )  CONSTRUCTOR
  METHOD Default    ()
  METHOD Destroy    ()
  METHOD Display    ()                         INLINE ::BeginPaint (), ::Paint (), ::EndPaint ()
  METHOD Dynamic    ()
  METHOD HandleEvent( nMsg, nWParam, nLParam )

**** Aqu铆 se presenta el error de super no definido
  METHOD Initiate   ( hDlg )                   INLINE Super:Initiate ( hDlg ), ::Default ()

  METHOD Paint      ()
  METHOD Refresh    ()                         INLINE IIF ( ::bGet != NIL, ::SetText ( EVAL ( ::bGet ) ),)
  METHOD ReSize     ( nType, nWidth, nHeight ) INLINE ::Default(), Super:ReSize ( nType, nWidth, nHeight )
  METHOD SetText    ( cText )                  INLINE ::cCaption := IIF ( ::cPicture != NIL, TRANSFORM ( cText, ::cPicture ), cValToChar ( cText ) ), ::Default (), ::Paint ()
  METHOD VarPut     ( cValue )

ENDCLASS
* --------------------------------------------------------------------------------------------------------------- *

* --------------------------------------------------------------------------------------------------------------- *
METHOD New ( nRow, nCol, bText, oWnd, cPicture, oFont, lCentered, lRight, lBottom, lBorder, lPixels, nClrText, nClrBack,;
             nWidth, nHeight, cScroll, nSpeed, lWrap, lBlink, lDesign, lUpdate, lShaded, lBox, lRaised ) CLASS TDSay



El ejemplo es el siguiente:

Code (fw): Select all Collapse
# include "fivewin.ch"  && # include "tclase_dynamic_say.ch"



Function Main ()
Local oDlg, oFont1 
Local sTitle_empresa := "Any Perla Pinto Quintero"

DEFINE FONT oFont0 NAME "TIMES"           SIZE 0, -08 ITALIC BOLD
DEFINE FONT oFont1 NAME "TIMES NEW ROMAN" SIZE 0, -10 ITALIC BOLD
DEFINE FONT oFont2 NAME "TIMES"           SIZE 0, -12 ITALIC BOLD
DEFINE FONT oFont3 NAME "TIMES"           SIZE 0, -60 ITALIC BOLD

DEFINE DIALOG oDlg FROM 000, 000 TO 520, 850 PIXEL TRANSPARENT ;                     && Alto * ABcho
       TITLE "test dinamic say for fivewin 2014_06 + harbour 3.40 + bccc 6.60"

 @ 001, 133 DYNAMIC SAY osTitle_Empresa PROMPT sTitle_Empresa              ;
            SIZE ( GetSysMetrics ( 0 ) / 2 ) - 200, 036  FONT oFont3 PIXEL ;
            HORIZONTAL SCROLL SPEED 60 WRAP                                ;  
            COLOR nRGB ( 250, 128, 032 ), nRGB ( 200, 200, 165 )                                                        && Letras / Fondo

@ 050, 005 BUTTON obtn1 PROMPT "Golden"     SIZE 050, 015 PIXEL FONT oFont1 OF oDlg ;
            MESSAGE 'golden jpg to bmp' ;
            ACTION ( FIMakeThumbNail ( "D:\fotos_empresa\golden\_0775.jpg", ".\golden.bmp", 32 ) )
           
@ 050, 105 BUTTON obtn2 PROMPT "Rical" SIZE 050, 015 PIXEL FONT oFont1 OF oDlg ;
            MESSAGE 'rical bmp to png' ;
            ACTION (  FIMakeThumbNail ( "E:\rical\fotos\1186.bmp", ".\rical.png", 32 ) )

ACTIVATE DIALOG oDlg 

Return ( NIL )
* -------------------------------------------------------------------------------------------------------------- *

* -------------------------------------------------------------------------------------------------------------- *
Function FIMakeThumbNail ( cSrcFile, cDstFile, nSize )
Local nSrcFormat, hDib, hDib2, lOk := .F.

* DEFAULT nQuality := 0

IF LoadFreeImage () > 32

 nSrcFormat := FIGETFILETYPE   ( cSrcFile, 0 )
 hDib       := FILOAD          ( nSrcFormat, cSrcFile, 0 )
 hDib2      := FIMAKETHUMBNAIL ( hDib, nSize, FALSE )
      
 * lOk = FISAVE ( nDstFormat, hDib2, cDstFile, nQuality )

 FIUNLOAD ( hDib )
 FIUNLOAD ( hDib2 )

ENDIF 

Return ( lOk )
* -------------------------------------------------------------------------------------------------------------- *
 
* -------------------------------------------------------------------------------------------------------------- *
* agregar a image.prg
DLL32 FUNCTION FMAKETHUMBNAIL( hDib AS LONG, nMaxPixelSize AS INTEGER, lConvert AS BOOL ) AS LONG PASCAL FROM "_FreeImage_MakeThumbnail@12" LIB hLib
* -------------------------------------------------------------------------------------------------------------- *

# include "__tclase_dynamic_say_.ch"
# include "_hb_340.ch"
*
*
*
*


como se arregla la definicion de la falta de la variable SUPER.

MIl Gracias

J. Ernesto Pinto Q.
Fwh_x64 2501, BCC++_x64 7_70 , Harbour 3.20, LopeEdit 5.8
jepsys@hotmail.com, jepsys@gmail.com

Posts: 838
Joined: Wed Aug 22, 2007 10:09 AM
Re: Error al compilar con nueva versi贸n
Posted: Thu Feb 26, 2015 07:26 PM

Hola,

Pon ::Super.

Un saludo compa帽ero

Saludos / Regards,



FWH 20.04, Harbour 3.2.0 dev (r1909261630) y BCC 7.40
Posts: 1515
Joined: Thu Oct 30, 2008 02:37 PM
Re: Error al compilar con nueva versi贸n
Posted: Thu Feb 26, 2015 07:27 PM

Ese error se debio a un cambio que se produjo, ya hace tiempo, en Harbour. En este foro ha sido tratado varias veces http://fivetechsupport.com/forums/viewt ... =0#p141336

El cambio fue que la variable Super dejo de existir... ahora, en su lugar, hay que referenciar a la data ::Super. En el enlace se propone una solucion.

Despues de los cambios, utilizando el flag de harbour -w3, si algun Super quedara sin cambiar, el compilador lo detectara.

En la practica, los problemas se producen sobre todo en clases de fivewin que han sido "personalizadas".

Saludos

Continue the discussion