Página 2 de 3
Re: Ajuda Migracao.
Enviado: 11 Abr 2011 07:52
por Toledo
Re: Ajuda Migracao.
Enviado: 11 Abr 2011 08:09
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.
Ajuda Migracao.
Enviado: 11 Abr 2011 11:01
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 )
Re: Ajuda Migracao.
Enviado: 11 Abr 2011 11:29
por sygecom
Para modo console ainda acho o mais indicado o link que o Itamar postou, é mais fácil e mais objetivo.
Re: Ajuda Migracao.
Enviado: 11 Abr 2011 13:35
por Alexandre Silva
Agradeco a todos..
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 Bli
nker 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
Re: Ajuda Migracao.
Enviado: 11 Abr 2011 14:43
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,
Re: Ajuda Migracao.
Enviado: 12 Abr 2011 02:29
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
Re: Ajuda Migracao.
Enviado: 13 Abr 2011 02:34
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
Re: Ajuda Migracao.
Enviado: 13 Abr 2011 11:56
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.
Re: Ajuda Migracao.
Enviado: 13 Abr 2011 16:08
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
Re: Ajuda Migracao.
Enviado: 13 Abr 2011 18:34
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
Supondo que sua lib se chame libmylib.a
Quanto ao mouse, inclua:
Saudações,
Itamar M. Lins Jr.
Re: Ajuda Migracao.
Enviado: 14 Abr 2011 00:23
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
Re: Ajuda Migracao.
Enviado: 14 Abr 2011 07:47
por Itamar M. Lins Jr.
Por favor teste assim:
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.
Re: Ajuda Migracao.
Enviado: 14 Abr 2011 08:03
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.
Re: Ajuda Migracao.
Enviado: 15 Abr 2011 10:13
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 )