Página 1 de 1

Informar um Include .ch para todo aplicativo

Enviado: 15 Set 2009 11:48
por asimoes
Amigos,

Estou usando o Hbmake para gerar minha aplicação.
Eu preciso usar um include .ch para ser usado em toda a aplicação. como eu informo isto no projeto .bc do hbmake?

[]´s

Re: Informar um Include .ch para todo aplicativo

Enviado: 15 Set 2009 19:05
por asimoes
Pessoal,

Eu sei que o harbour tem o parâmetro /u: /u[[+]<file>] use command def set in <file> (or none)

stdsmf.ch é o arquivo contendo diversos comandos que eu quero usar em toda a minha aplicação.
Onde eu informo no hbmake o uso do /ustdsmf.ch

[]´s

Re: Informar um Include .ch para todo aplicativo

Enviado: 15 Set 2009 23:07
por sygecom
Não seria mais facil deixar junto na pasta do seu sistema, ou colocar na pasta \xharbour\include ou ainda definir diretamente no .PRG o caminho:
#INCLUDE "C:\MINHAPASTA\MEUINCLUDE.ch"

Re: Informar um Include .ch para todo aplicativo

Enviado: 16 Set 2009 08:07
por asimoes
Olá Leonardo,

Informando explicitamente o caminho ou colocando arquivo stdsmf.ch na pasta de compilação não resolveu.
Eu alterei o meu projeto .bc e alterei a seguinte linha e acrescentei no final em vermelho:

.prg.obj:
$(HB_DIR)\bin\harbour -D__EXPORT__ -n -go -I$(HB_DIR)\include $(HARBOURFLAGS) -o$* $** /ustdsmf.ch

Só assim funcionou. O ideal seria ter esta opção no hbmake sem ser preciso alterar o .bc

Para explicar o que eu consigo no clipper em um arquivo .rmk

s:\clip5_2\bin\clipper @PPATDBUG.clp /B/a/ustdsmf.ch

Várias rotinas do meu sistema usa o comando show file. Ter que informar em todos os prgs o include fica muito oneroso.
Vejam parte do conteúdo do stdsmf.ch:
Exemplo do uso:

Código: Selecionar todos

SHOW FILE        Bairros  ;
     ORDERED BY  aOpcoes[nLinOp, 1] ;
     USING	 aCampos  ;
     SEARCH      MESSAGE  aOpcoes[nLinOp, 2] ;
                 PICT     ValPos(aOpcoes,nLinOp,3);
                 WAITTIME ValPos(aOpcoes,nlinOp,10);
     FREEZING    1 ;
     METHOD {{K_F10, {|oBr| PrintBrowse(oBr,,.T.,,"Tabela de Bairros")}, "<F10> Imp"},;
             {K_TAB, {|b| IF(nLinOp=2, nLinOp:=1, ++nLinOp), FuncKTab(b, aOpcoes, nLinOp)}, "<Tab> Busca"},;
             {K_INS, {||.T.}, ""},;
             {K_ENTER,{||.T.}, ""},;
             {K_DEL,{||.T.}, ""}}

Código: Selecionar todos

#command SHOW [ON <aCoord>]        [FILE <cAlias>]          [ORDERED BY <nOrder> [<goback:BACK>]] ;
              [USING <aFields>]    [METHOD <aMeth>]         [INCLUDE <cInclude>]                  ;
              [EXCLUDE <cExclude>] [COLOR <vColor>]         [FREEZING <nFreeze>]                  ;
              [SCOPE <vFilter>]    [OPTION <nOption>]       [TRANSFER <cExp>                      ;
                                                              [TO <cReturn>]                      ;
                                                              [WITH <nKey>]                       ;
                                                              [MESSAGE <cMess>]]                  ;
              [SEARCH                                                                             ;
                 [LEN <nBufferLen>    ]                                                           ;
                 [WAITTIME <nWaitTime>]                                                           ;
                 [PICT <cSearchPic>]                                                              ;
                 [DATATYPE <cDataType>] [USERFUNC <bUserFunc> ]                                   ;
                 [MESSAGE  <cMessage>]]                                                           ;
              [SEPARATOR <aSep>]                                                                  ;
              [AUDIT <bAudit>]                                                                    ;
         =>                                                                                       ;
         [<cReturn> :=] BrowFile( [<(cAlias)>],   [IF( <.goback.>, -<nOrder>, <nOrder> )], [<aFields>], [<aMeth>],     ;
                                  [<(cInclude)>],                                                                      ;
                                  [<(cExclude)>], [<aCoord>], [<vColor>],  [<nFreeze>], [<vFilter>],                   ;
                                  [<nOption>],    [{ <(cExp)>, <.cReturn.>, <nKey>, <cMess> }],                        ;
                                  [{ <cSearchPic>, <cDataType>, <bUserFunc>, <cMessage>, <nWaitTime>, <nBufferLen> }], ;
                                  [<aSep>], [<bAudit>] )

Re: Informar um Include .ch para todo aplicativo

Enviado: 19 Set 2009 02:00
por sygecom
Olá Asimões,
Estranho por que eu tenho os dois caso, tanto direto na pasta do aplicativo como na pasta INCLUDE e não tenho problemas, até mesmo por que o xHarbour não diferencia se é um .CH proprio do xharbour ou customizado seu. Esta compilando em Linux ?