Page 3 of 4
Re: Erro na compilação
Posted:
Sun Dec 06, 2009 11:42 pm
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
Re: Erro na compilação
Posted:
Mon Dec 07, 2009 12:17 am
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
Re: Erro na compilação
Posted:
Mon Dec 07, 2009 12:28 am
by Antonio Linares
Jufer,
Nosotros no usamos Verce, sino UEStudio, pero seguro que algún usuario de Verce en estos foros podrá ayudarte
Re: Erro na compilação
Posted:
Mon Dec 07, 2009 12:35 am
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
Re: Erro na compilação
Posted:
Wed Dec 09, 2009 10:18 am
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
Re: Erro na compilação
Posted:
Wed Dec 09, 2009 2:49 pm
by Antonio Linares
Jufer,
Tienes que enlazar la Clase TGather. Aqui tienes el fuente que nos ha facilitado un usuario:
- Code: Select all Expand view
/*
╔════════════════════════════════════════════════════════════════════════╗
║ 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 )
Re: Erro na compilação
Posted:
Wed Dec 09, 2009 3:14 pm
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
Re: Erro na compilação
Posted:
Thu Dec 10, 2009 12:08 am
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
Re: Erro na compilação
Posted:
Thu Dec 10, 2009 12:25 am
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
Re: Erro na compilação
Posted:
Thu Dec 10, 2009 8:43 pm
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
Re: Erro na compilação
Posted:
Thu Dec 10, 2009 10:21 pm
by Antonio Linares
Jufer,
Tienes estas líneas en tu código fuente ? Son necesarias:
- Code: Select all Expand view
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"
Re: Erro na compilação
Posted:
Thu Dec 10, 2009 10:41 pm
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
Re: Erro na compilação
Posted:
Thu Dec 10, 2009 10:53 pm
by Antonio Linares
Jufer,
No, solo en el PRG principal
Re: Erro na compilação
Posted:
Thu Dec 10, 2009 11:04 pm
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
Re: Erro na compilação
Posted:
Wed Dec 16, 2009 3:16 am
by jufer
Alguém tem as classes de TSBROWSE e TSBUTTON, as que tenho parece que estão com erro.
Obrigado
Jufer