Ajuda Migracao.

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Ajuda Migracao.

Mensagem por Toledo »

Alexandre, veja a mensagem abaixo:

https://pctoledo.org/forum/viewto ... =15#p67763

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Ajuda Migracao.

Mensagem por Itamar M. Lins Jr. »

Pra quê, tanto trabalho ?

Basta baixa o Harbour deste local:
http://sourceforge.net/projects/harbour ... e/download

hbmk2 meuprojeto.hbp

O conteúdo do arquivo ".hbp" é similar ao criado para o blinker.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Ajuda Migracao.

Mensagem por Pablo César »

Antes de mais nada, quero pedir desculpas a todos se a minha indicação "soar" um tanto tendenciosa. Mas quero aclarar que indico HMG porque para mim foi a melhor opção que em anos eu ja tive. Só pela praticidade de instalat o pacote, utilizar a IDE e bastando clicar em compilar... ja obtive excelentes resultados. E é por isso que não canso de indicar ora também porque não existe qualquer interesse comercial nisso. Já que o produto é OPENSOURCE e pode transformar facilmente aplicações em Clipper em modo console e com um algum esforço: em modo gráfico.

Alexandre, disse que instalou o HMG versão 4 e quer as suas aplicações em modo CONSOLE. Mas eu aconselho você baixar o HMG versão 3.0.35, pois esta versão está mais estável e menos complexa que a versão 4. Basta instalar e utilizar a IDE, abra um projeto, importe seus prgs para dentro do projeto criado e mude a configuração para mode console para .T. daí o compilador irá criar a sua aplicação não gráfica. Desta forma, você não precisa instalar Harbour nem BCC, tudo está "embutido" no pacote de instalação da HMG. Quiser apenas criar esse exemplo, você conseguirá através da IDE da HMG sem trauma algum. No diretório da HMG 3.0.35 tem uma sub pasta chamada examples, experiemente, lá tem o mesmo exemplo. Tive ainda dúvidas, abra ou siga o tópico na seção MiniGUi ( podendo ser neste: https://pctoledo.org/forum/viewto ... 58&start=0 )
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Ajuda Migracao.

Mensagem por sygecom »

Para modo console ainda acho o mais indicado o link que o Itamar postou, é mais fácil e mais objetivo.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Ajuda Migracao.

Mensagem por Alexandre Silva »

Agradeco a todos.. :D
Sou dinossauro e só uso o CMD, compilo com pequenas Bath entao vou usar o hbmk2
Fica bem parecido com o clipper eu tinha uma script.LNK agora tenho um script.HBP-
Consegui compilar, tranquilo

Agora vou para segunda etapa..

1-Gerar a minha LIB , no clipper eu compilava e usava o aplicativo LIB, no hbmk2 tem uns parametros, mas nao entendi o LIB estatitica e dinamica ?

2-No clipper eu usava o blinker e para executar aplic.externos usava o SWPRUNCMD(), agora devo usar apenas RUN ?

3-No blinker tb usava a diretiva Blinker exec compress 1, que tornava o executal bem menor.. Vi que no harbour tem o UPX.exe mas como usar ? e é seguro ??

4-Outra funcao de biblioteca que usava muito era LF_Directory(), , pois me trazia o nome longo dos arquivos de uma pasta e o nome curto equivalente, para eu usar dentro do clipper,
como fazer isso agora ? ja que nao usarei mais essa lib..

5 - No blinker tinha uma serie de parametros, para melhorar a performance.. imagino que para o harbour, nao precisarei tanta coisa..

BLINKER INCREMENTAL OFF
BLINKER CACHE EMS 50%, 50%
BLINKER CACHE XMS 50%, 50%
BLINKER LINK EMS ON
BLINKER LINK XMS ON
BLINKER EXEC CLIPPER //DYNF:8 //F:171
BLINKER EXEC COMP 1
BLINKER EXEC EXTE
BLINKER MEMO PACK 60
BLINKER INCR PAD 256
BLINKER PROCEDURE DEPTH 70


Obrigado
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Ajuda Migracao.

Mensagem por Toledo »

Alexandre, segue abaixo as respostas:

1 - para criar uma LIB, veja o link:
https://pctoledo.org/forum/viewto ... =4&t=11499

2 - acho que a maioria das funções do BLinker existe no Harbour, basta relacionar a LIB hbblink na compilação. Ou você pode usar também a função hb_run() do Harbour.

3 - para fazer a compressão do EXE, basta colocar o comando -compr=nível no seu arquivo HBP, onde nível corresponde ao nível de compressão: min, max ou def.

4 - você poderá usar a função Directory() mesmo, que já traz nome longo de arquivos e pastas.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Ajuda Migracao.

Mensagem por Alexandre Silva »

Legal !!! :))
Dessa vez vai..
Outra questao: Pelo que vi nao tem suporte a NSX, certo. ? tenho que mudar para CDX ?

E na questao da impressao, tb tem extenso material aqui.. eu uso o DosPrint residente e ta dando..
mas nao tem como pelo Harbour para ter acesso aquela tela das impressoras do windows..??
ou tem alguma funcao que a partir do relat em txt que eu gero possa criar um PDF ?
dando a impressao de imprimir ou nao..

Nao quero andar com essa muleta do Dosprint (embora tá me salvando a vida ultimamente, com essas impressoras que só vem usb e agora até os micros nao vem mais com paralela..)

Obrigado
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Ajuda Migracao.

Mensagem por Alexandre Silva »

To comencando.. desculpem as perguntas basicas.. procurei e nao achei..
No harbour ja perbeci que a velocinadade é maior na indexacao e nos procesoss..to contente
estou com harbour 2.00 modo console usando o hbmk2

1- Tem diferença usar hbmk2 projeto.hbp ou harbour projeto.bc ?? afinal o hbmk2 invoca o harbour, mas se eu quiser passar aqueles paramentros para suprimir linha por exemplo, nao tem no hbmk2 !!!

2- Como desligar o bendito mouse ? nao adiante setmouse(.f.) :%

3- O ALT D do debug tem que apertar ALT_D e depois esc para é isso mesmo ? no clipper nao pecisava esc,
e quando o sistema caia, se tivesse em modo debug nao caia fora, ficava na linha onde deu o erro/
E para ver uma variavel eu digitava wp nomedavariavel e ela aparecia em cima .. aqui nao funciona..

meu script projeto.hbp

-oloja.exe
-inc
-lmylib
-b
-lhbdebug
loja.prg
loja1.prg
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Ajuda Migracao.

Mensagem por Itamar M. Lins Jr. »

Ola!
A extensão .bc é quando usamos o Borland C.
Se pegou o Harbour pelo link que postei, ele vém com o Mingw que é o padrão.
Não indicamos aos usuários permanecer no BCC 5??? porque está muito defazado em relação a outros compiladores.
O BCC6 eu baixei, instalei, testei e removi. Muito pesado para meu Note.
Vantagens do Mingw, é poder levar no pen-drive, está atualizado, é o padrão...etc
Desligar o mouse:
Hb_GTInfo(HB_GTI_MOUSESTATUS, 1 )


Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Ajuda Migracao.

Mensagem por Alexandre Silva »

Agradeco ao amigo.
agora estou usando a versao 2.1 com mingw. Ocorre o seguinte,:
1-Ja recompilei a mylib que agora gera um arquivo comecando com LIB e terminado em .a
mas nao sei onde devo salva-la , ja tentei varios lugares..
Na compilacao do oi.exe (abaixo) da erro canoot find -llibmylib
Script da Lib .. ( tem maneira de deixa-la mais enxuta ??, suprimindo a linha que no harbour seria /l
mas no script nao sei fazer..

Código: Selecionar todos


-inc
-hblib
-omylib
-rebuild
ljuro.prg
lagenda.prg
lsomames.prg
lerro.prg
lcampos.prg
lsetar.prg
lverif.prg
ltlimp.prg
lligaimp.prg
lfontes.prg
lseta.prg
lnetuse.prg
lpausa.prg
lbanco.prg
lfcgc.prg
lfcpf.prg
luf.prg
lcalcula.prg
lcalend.prg
ltrunca.prg
linscest.prg
lleia.prg
lstfile.prg
2-Na questao do Mouse, se uso a funcoa sugerida
Desligar o mouse: Hb_GTInfo(HB_GTI_MOUSESTATUS, 1 )
da erro que variavel nao existe HB_GTI_MOUSESTATUS,

Obviamente esta tudo relacionado a configuracao..Peço compressao, comecei esta semana..No Harbour
clipper tem 20 anos. Onde posso encontrar um help para todas essas libs ?

Meu script.hbp que compilo: hbmk2 script.hbp

Código: Selecionar todos

-ooi.exe
-inc
-lhbdebug
-llibmylib
-b
oi.prg
Anexos
set.txt
(1.23 KiB) Baixado 110 vezes
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Ajuda Migracao.

Mensagem por Itamar M. Lins Jr. »

Ola!
Então blz.
Veja que é preciso adicionar a cláusula(flag) para achar a mylibetcetcetc...
Por exemplo:
O set include do clipper ou o set lib.

Código: Selecionar todos

{win}incpaths=c:\hwgui\include;c:\letodb\include
{win}libpaths=c:\hwgui\lib
Fica assim usando o hbmk2 é só colocar no hbp.
Supondo que sua lib e seus includes esteja na pasta c:\meuprojeto

Código: Selecionar todos

{win}incpaths=c:\meuprojeto
{win}libpaths=c:\meuprojeto
Supondo que sua lib se chame libmylib.a

Código: Selecionar todos

{win}libs=mylib myoutralib myoutraoutralib
Quanto ao mouse, inclua:

Código: Selecionar todos

//#include "dbinfo.ch"
#include "hbgtinfo.ch"

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Ajuda Migracao.

Mensagem por Alexandre Silva »

Obrigado.
Quero dizer que no hbmk2 nao posso usar libpaths=c:\meuprojeto
depois de sofrer um pouco vi que tem que usar Lc:\meuprojeto (L maiusculo)

Quanto ao Mouse continua ligado, nao importa se coloco 0 ou 1 ai na funcao..
HB_Gtinfo(HB_GTI_MOUSESTATUS, 0 )

Outra coisa, e essa é ruim. :(Neg .
Estando num Brosedb posicionado em um determinado registro, se apertar ALT equivale a um control pageup, ou seja vai para o topo do arquivo.
Isso é ruim para meu usuario que tem varias telcas de atalho com ALT . o que fazer ??



Obrigado
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Ajuda Migracao.

Mensagem por Itamar M. Lins Jr. »

Por favor teste assim:

Código: Selecionar todos

hb_gtInfo( HB_GTI_MOUSESTATUS, .F. )
Segundo o criador do comando é para funcionar.
2009-07-15 03:28 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/source/rtl/gtwin/gtwin.c
* added code to disable/enable mouse input by:
hb_gtInfo( HB_GTI_MOUSESTATUS, <lOnOff> )
It's possible that hb_gtInfo( HB_GTI_MOUSESTATUS, .F. ) will also
disable mouse cursor in full screen mode but I haven't tested it.
Please check.
E nas libs extras eu tenho um arquivo hbc assim:

Código: Selecionar todos

{win}incpaths=c:\hwgui\include;c:\letodb\include
{win}libpaths=c:\hwgui\lib
{win}libpaths=c:\letodb\lib
{win}libpaths=c:\blat\blat262\full

{win}gt=gtgui

{win}libs=hwgui hbxml procmisc hwg_qhtm
{win}libs=hbwin hbct hbnf gtwvg 
{win}libs=rddleto hbxpp
{win}libs=xhb hbblat blat
Para cada arquivo hbp eu tenho um com o mesmo nome só que com a extensão hbc.
Teste ai.

Ps. tem outras mensagens aqui no forum de como desligar o mouse.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Ajuda Migracao.

Mensagem por Itamar M. Lins Jr. »

Estando num Brosedb posicionado em um determinado registro, se apertar ALT equivale a um control pageup, ou seja vai para o topo do arquivo.
Isso é ruim para meu usuario que tem varias telcas de atalho com ALT . o que fazer ??
Tente enxugar ao máximo o código do browse e postar um exemplo.
Ao que tudo indica tem um erro ai, e ou, algo que passa disapercebido no clipper mas que o Harbour não deixa passar.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Alexandre Silva
Usuário Nível 3
Usuário Nível 3
Mensagens: 376
Registrado em: 26 Mar 2007 00:16
Localização: Itapema - SC

Re: Ajuda Migracao.

Mensagem por Alexandre Silva »

OPa.
Mouse ok, desabilitado

Segue funcao (generica) que uso direto para o tela de manutecao..
Como disse, supondo que o usuario esteja em um determinado registro, lá pelo meio, e resolva chamar umas das funcoes de atalho (ALT_C para calculadora por exemplo) basta apertar ALT que o registro vai sofrer um goTOP..Pode estar relacionada o inkey ??

Desejo como no caso do CONTROL + Alguma leltra, ao apertar o CONTROL nada acontece até a se apertar a letra

Código: Selecionar todos


*------------------------
* tabela
*-------------------------
# include "inkey.ch"
function tabela()
local getlist:={},vcod,vdescricao,tela:=savescreen()
local objbrw,objcol,ntecla,texto:=' Tabela EXEMPLO '
local wli:=7,wci:=20,wlf:=22,wcf:=50
sele tabela
set order to 1  // codigo e descricao
dbgobottom()
objbrw := TBrowseDB(wli+1,wci+1,wlf-2,wcf-1)
objcol := tbcolumnnew( 'Cod',{|| codigo })
objbrw : addcolumn(objcol)
objcol := tbcolumnnew( 'Descricao', {|| descricao })
objbrw : addcolumn(objcol)
objbrw : gobottom()
do while .t.
   set cursor off
   do while (!objbrw:stabilize())
   enddo
   if (objbrw:stable)
      ntecla := inkeywait(0)
   endif
   set cursor on
   if !tecpadrao(objbrw,ntecla)  // <=========
      if ntecla=K_ESC
         exit
      elseif ntecla=K_F2
         * incluir()
      elseif ntecla=K_F3
         * alterar()
      elseif ntecla=K_F4

      endif
   endif
enddo
rest scre from tela
retu


*-----------------------------------------
* movimenta objeto browse conforme a tecla
*-----------------------------------------
function tecpadrao(tbrowobj,ulttecla)
local modoret:=.t.
DO CASE
   CASE ulttecla == K_DOWN
        tbrowobj:DOWN()
   CASE ulttecla == K_PGUP
        tbrowobj:PAGEUP()
   CASE ulttecla == K_PGDN
        tbrowobj:PAGEDOWN()
   CASE ulttecla == K_CTRL_PGUP
        * aqui esta entrando quando aperta somente ALT (codigo 31)
        tbrowobj:GOTOP()
   CASE ulttecla == K_CTRL_PGDN
        tbrowobj:GOBOTTOM()
   CASE ulttecla == K_LEFT
        tbrowobj:LEFT()
   CASE ulttecla == K_RIGHT
        tbrowobj:RIGHT()
   CASE ulttecla == K_CTRL_HOME
        tbrowobj:PANHOME()
   CASE ulttecla == K_CTRL_END
        tbrowobj:PANEND()
   CASE ulttecla == K_UP
        tbrowobj:UP()
   CASE ulttecla == K_CTRL_LEFT
        tbrowobj:PANLEFT()
   CASE ulttecla == K_CTRL_RIGHT
        tbrowobj:PANRIGHT()
   CASE ulttecla == K_HOME
        tbrowobj:HOME()
   CASE ulttecla == K_END
        tbrowobj:END()
   OTHER
        modoret:=.f.
ENDCASE
return(modoret)


*  Sample keyboard routines
*  Copyright (c) 1993, Computer Associates International Inc.
*  All rights reserved.
*  Note: Compile with /N /W options
*  InKeyWait( <nSecs> ) --> nInkeyCode
*  Similar to INKEY(), except services SET KEYs
*----------
FUNCTION InKeyWait( nSecs )
   
   LOCAL nKey        // INKEY() value to return
   LOCAL bKeyBlock   // Code block retrieved and performed for nKey, if any

   nKey := INKEY( nSecs )

   IF ( bKeyBlock := SETKEY( nKey ) ) != NIL 
      EVAL( bKeyBlock, PROCNAME( 2 ), PROCLINE( 2 ) )
   ENDIF

   RETURN( nKey )

* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
Responder