Erro na compilação

jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Muito obrigado.

Vou adaptar FWH\samples\buildx.bat para construirlo e testar.

Eu uso VERCE v5.3 para construir. Não devo usar mais o VERCE??

Saludos

Jufer
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Gracias amigo! Com buildx.bat copila e executa perfeitamente.

Muchas gracias.

Gostaria que me informasse se não posso usar mais o VERCE v5.3.

Saludos

Jufer
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro na compilação

Post by Antonio Linares »

Jufer,

Nosotros no usamos Verce, sino UEStudio, pero seguro que algún usuario de Verce en estos foros podrá ayudarte :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Antonio Linhares gracias por contertarme.

Não tenho o código para Uestudio. Pedi o código de acesso quando comprei o compilador FWH9.10 e até hoje não me concederam a licença.

Saludos

Jufer
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

O meu projecto está a dar o seguinte erro:

Unresolved external '_HB_FUN_TGATHER'

A linha de comando que tenho no meu PRG é a seguinte:

m->oSenhaDbf := TGather():New( .T. )
m->oSenhaDbf:AddIndex( "Arqsenha","NOME" )

Esta linha serve (ou serviria) para carregar para a variável m->senhaDbf o ficheiro Arqusenha.DBF e depois juntar todos os ficheiros índice (CDX).

Alguém me poderá ajudar neste problema??

Agradeço antecipadamente

Jufer
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro na compilação

Post by Antonio Linares »

Jufer,

Tienes que enlazar la Clase TGather. Aqui tienes el fuente que nos ha facilitado un usuario:

Code: Select all

/*
╔════════════════════════════════════════════════════════════════════════╗
║ Program......: TGather.prg                                             ║
║ Date.........: 01/15/96                                                ║
║ Author.......: ANTONIO ALVAREZ                                         ║
║ Compiler.....: Clipper Ver 5.2e                                        ║
╚════════════════════════════════════════════════════════════════════════╝
*/

// #include 'Objects.ch'

CLASS TGather
      DATA cAlias       AS CHARACTER
      DATA aFields      AS ARRAY
      DATA dFields      AS ARRAY
      DATA lBuffer      AS LOGICAL

      METHOD New( lBuffer )
      METHOD AddIndex( cOrderBagName, cOrderName )
      METHOD ClearIndex()
      METHOD SetOrder( cnOrder, cOrderBagName )
      METHOD FieldGet( nField )    INLINE ( ::cAlias )->( FieldGet( nField ) )
      METHOD FieldPut( nFld, uVal) INLINE ( ::cAlias )->( FieldPut( nFld, uVal ) )
      METHOD Gather()
      METHOD Scatter()
      METHOD Blank()
      METHOD Seek( cKey )
      METHOD RecNo()               INLINE ( ::cAlias )->( RecNo() )
      METHOD LastRec()             INLINE ( ::cAlias )->( LastRec() )
      METHOD Eof()                 INLINE ( ::cAlias )->( Eof() )
      METHOD Bof()                 INLINE ( ::cAlias )->( Bof() )
      METHOD GoTo( nRecord )
      METHOD GoFirst()
      METHOD GoLast()
      METHOD Skip( nRecords )
      METHOD Delete()              INLINE ( ::cAlias )->( DbDelete() )
      METHOD Used()                INLINE ( ::cAlias )->( Used() )
      METHOD Commit()
      METHOD Lock()                INLINE ( ::cAlias )->( RLock() )
      METHOD UnLock()
      METHOD Close()
      METHOD DUPLICA()
ENDCLASS

//------------------------------------------------------------------//
METHOD New( lBuffer ) CLASS TGather
       ::cAlias := Alias()
       ::aFields := Array( ( ::cAlias )->( FCount() ) )
       IF ( lBuffer == NIL )
          ::lBuffer := .T.
       ELSE
          ::lBuffer := lBuffer
       ENDIF
       ::Blank()
RETURN ( Self )

//------------------------------------------------------------------//
METHOD Gather() CLASS TGather
       LOCAL i := 0
       IF ( ::lBuffer )
          FOR i = 1 to ( ::cAlias )->( FCount() )
              ::aFields[i] := ::FieldGet(i)
          NEXT
       ENDIF
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD AddIndex( cOrderBagName, cOrderName ) CLASS TGather
       ( ::cAlias )->( OrdListAdd( cOrderBagName, cOrderName ) )
RETURN ( NIL )
* METHOD AddIndex( aInxDef ) CLASS TDbf

*    aAdd( ::aIndex, aInxDef )
*    ::lIndex := .t.

* return( nil )

//------------------------------------------------------------------//
METHOD ClearIndex() CLASS TGather
       ( ::cAlias )->( OrdListClear() )
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD SetOrder( cnOrder, cOrderBagName ) CLASS TGather
       ( ::cAlias )->( OrdSetFocus( cnOrder, cOrderBagName ) )
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD Scatter() CLASS TGather
       LOCAL i := 0
       IF ( ::lBuffer )
          FOR i = 1 to ( ::cAlias )->( FCount() )
              ::FieldPut(i, ::aFields[i])
          NEXT
       ENDIF
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD Blank() CLASS TGather
       LOCAL i := 0
       IF ( ::lBuffer )
          FOR i = 1 to ( ::cAlias )->( FCount() )
              ::aFields[i] := ShowGet( ::FieldGet(i) )
          NEXT
       ENDIF
RETURN ( Nil )

//------------------------------------------------------------------//
METHOD Seek( cKey ) CLASS TGather
       LOCAL lRet := .T., nRec := ::Recno()
       IF ( ::cAlias )->( DbSeek( cKey ) )
          ::Gather()
       ELSE
          ::GoTo( nRec )
          lRet := .F.
       ENDIF
RETURN ( lRet )

//------------------------------------------------------------------//
METHOD GoTo( nRecord ) CLASS TGather
       ( ::cAlias )->( DbGoTo( nRecord ) )
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD Skip( nRecords ) CLASS TGather
       ( ::cAlias )->( DbSkip( nRecords ) )
       IF ( ::cAlias )->( Eof() )
          ( ::cAlias )->( DbSkip( -1 ) )
       ENDIF
       ::Gather()
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD GoFirst() CLASS TGather
       ( ::cAlias )->( DbGoTop() )
       ::Gather()
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD GoLast() CLASS TGather
       ( ::cAlias )->( DbGoBottom() )
       ::Gather()
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD Commit() CLASS TGather
       ( ::cAlias )->( DbCommit() )
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD UnLock() CLASS TGather
       ::Commit()
       ( ::cAlias )->( DbrUnLock() )
RETURN ( NIL )

//------------------------------------------------------------------//
METHOD Close() CLASS TGather
       ( ::cAlias )->( DbCloseArea() )
RETURN ( NIL )

//------------------------------------------------------------------//
FUNCTION ShowGet( cField )
  LOCAL xRetVal := ""
  IF ValType(cField) == "C"
     xRetVal := Space( Len( cField ) )
  ELSEIF ValType( cField ) == "N"
     xRetVal := 0
  ELSEIF ValType( cField ) == "D"
     xRetVal := CtoD("")
  ELSEIF ValType( cField ) == "L"
     xRetVal := .F.
  ENDIF
RETURN ( xRetVal )


************************************************
*  Funcion de copiar datos
************************************************
*/

METHOD duplica() CLASS TGather
       LOCAL i := 0
       ::dFields := Array( ( ::cAlias )->( FCount() ) )
       IF ( ::lBuffer )
          FOR i = 1 to ( ::cAlias )->( FCount() )
              ::dFields[i] := ::FieldGet(i)
          NEXT
     
          FOR i = 1 to ( ::cAlias )->( FCount() )
              ::aFields[i] :=ShowGet ( ::FieldGet(i) )
          NEXT

          FOR i = 1 to ( ::cAlias )->( FCount() )
              ::aFields[i] := ::dFields[i]
          NEXT

       ENDIF

RETURN ( NIL )
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Meu caro António Liñares,

Muito opbrigado pelo envio do ficheiro TGather.prg.
Como estou a aprender a programar, especialmente em FiveWin for Harbour, através do FWH9.10, ainda não sei como "enlazar" a Classe TGather, se não fosse muito incómodo agradecia que me ensinasses que ficheiros devo usar (PRG, CH e C) para construir o ficheiro LIB.

Muito obrigado

Jufer
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro na compilação

Post by Antonio Linares »

Jufer,

Crea un fichero gather.prg con el código que hemos publicado.

Luego compílalo y enlázalo como otro PRG más de tu aplicación. No hace falta que crees un fichero LIB de momento :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Caro António Linhares,

Muito obrigado pelos conselhos. Realmente já compilei como PRG e está a funcionar.

Peço desculpas mas como estive a praticar com uma versão muito antiga DEMO o meu projecto funcionava, não sei se bem se mal, o certo é que funcionava.

Estou a ajustar às novas metodologias do FWH9.10 e notei que há muitas diferenças. Por exemplo:

REDEFINE BROWSE oLbx FIELDS (cAlias)->ANDAR, ( cAlias )->Nome1;
HEADERS "Andar" , "Nome do Condómino" ;
COLSIZES 107, 550 ;
COLOR CLR_BLACK, CLR_WHITE ;
FONT oFnt ;
ID 101 ;
OF oDlg CURSOR oHand ;
ON DBLCLICK( GetCondom( .F., ( cAlias ), .F.), ;
oLbx:Refresh(), oLbx:Setfocus() )

Com esta instrução eu podia seleccionar as FIELDS FIELDS (cAlias)->ANDAR, ( cAlias )->Nome1 e no BROWSE só apareciam estas duas colunas.

Agora com o FWH9.10 a instrução fica assim:

REDEFINE COLUMN BROWSE oLbx FIELDSIZES 432 ID 101 ;
HEADERS "Designação odo Condomínio" ;
ON DBLCLICK (GetCondom( .F., ( cAlias ), .F.), ;
oLbx:Refresh(), oLbx:Setfocus()) ;
FONT oFnt ;
CURSOR oHand

Não consigo seleccionar uma coluna porque no BROWSE aparecem todas as colunas do ficheiro DBF.

Podes ajudar-me?

Muito obrigado.

Saludos, regards, abraços

Jufer
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Boa noite,

O meu programa está a dar um erro quando chamo um RESOURCE e tenho umas desconfiaças que deve ser porque o ficheiro BWCC32.DLL não está actualizado. Não sei se isto é verdade mas se for alguém me pode ensinar se posso actualizar como actualizei o ficheiro ACE32.DLL?

Ou seja: implib ace32.lib ace32.dll

Agradeço antecipadamente

Jufer
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro na compilação

Post by Antonio Linares »

Jufer,

Tienes estas líneas en tu código fuente ? Son necesarias:

Code: Select all

   local hBorland := LoadLibrary( "BWCC32.dll" )

   BWCCRegister( GetResources() )

   ... el código de tu aplicación 

DLL32 FUNCTION BWCCRegister( hInst AS LONG ) AS WORD PASCAL LIB "BWCC32.DLL"
 
regards, saludos

Antonio Linares
www.fivetechsoft.com
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Caro António,

Sim tenho estas linhas no meu PRG inicial. Será preciso que todos os PRG tenham estas instruções??

Saludos, regards, abraços

Jufer
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: Erro na compilação

Post by Antonio Linares »

Jufer,

No, solo en el PRG principal
regards, saludos

Antonio Linares
www.fivetechsoft.com
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Caro António,

O erro continua a dar é o seguinte:

Discription: Cannot create Dialog Box
GenCode: 0
Operation: Ressource: LICENCA
CREATEEDDLGETERROR(558)
CODDATA(265)
(b)BUILDMENU(539)
TMENU:COMMAND(437)
TWINDOW:COMMAND(1017)
TMDIFRAME:COMMAND(243)
TMDIFRAME:HANDLEEVENT(0)
_FWH(3347)
WINRUN(0)
TMDIFRAME:ACTIVATE(966)
MAIN(165)

Saludos, regards

Jufer
jufer
Posts: 50
Joined: Wed Nov 16, 2005 7:10 pm
Location: Portugal

Re: Erro na compilação

Post by jufer »

Alguém tem as classes de TSBROWSE e TSBUTTON, as que tenho parece que estão com erro.


Obrigado

Jufer
Post Reply