convertendo aplicação clipper 5.3 para Harbour

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

Moderador: Moderadores

Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

Amigos,

pretendo utilizar o Minigui/Harbour no modo console na seguinte versao
Harbour MiniGUI 1.9 Extended Edition (Build 93) - 2011.02.16
BRMAKE - Make File para Harbour/xHarbour/MiniGUI Versão 2.05
BCC55

estou convertendo meu sistema em clipper 5.3 para Harbour (DOS), esta dando erro cfe abaixo, compilando no clipper 5.3 não da erro:

Código: Selecionar todos

┌─────────────────────────────────────────────┐
│ Erro PUSHBUTTON/1001  Argument error: STYLE │
│           Erro DOS não disponível           │
│                                             │
│               Sair    Gravar                │
└─────────────────────────────────────────────┘
eu gravo o erro em um arquivo cfe abaixo..

Código: Selecionar todos

Relacão das funcões:
PUSHBUTTON:_STYLE(0)
GUIREADER(471)
(b)LOGIN(224)
READMODAL(146)
LOGIN(251)
LOGINUSER(431)
MAIN(173)
<fim do erro>
a linha de chamada é esta

Código: Selecionar todos

@ 15, 41 GET lOk PUSHBUTTON;
     CAPTION  "   O&k   ";
     STATE { || lGo := .T., GetActive():ExitState := GE_WRITE };
     STYLE "";
     COLOR PushColor( ATail( GetList ) );
     GUISEND Style := MyButton( ATail( GetList ):Control, .F. );
     MESSAGE " Confirma o login (F10)"
a funcao MYBUTTON é

Código: Selecionar todos

*********************
FUNCTION MyButton( oGUI, lMode )
*********************

LOCAL nRow := oGUI:row-1
LOCAL nCol := oGUI:col-1
LOCAL nLen := Len( CharRem( "#&", oGUI:Caption ) ) + 1

LOCAL xReturn

DEFAULT lMode TO .F.

oGUI:Style := ""

IF !( oGUI:HasFocus)
   xReturn := MyFrame( nRow, nCol, nRow+2, nCol+nLen, "SU" )

ELSEIF oGUI:HasFocus .AND. !lMode
   xReturn := MyFrame( nRow, nCol, nRow+2, nCol+nLen, "DU" )

ELSEIF oGUI:HasFocus .AND. lMode
   xReturn := MyFrame( nRow, nCol, nRow+2, nCol+nLen, "DD" )

ENDIF

RETURN xReturn

alguem sabe me dizer se existe incompatibilidade nestes comandos ou onde esta o erro?

abraços
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Bem vindo ao Harbour.
Primeiro vamos esclarecer que não existe Minigui em modo console.
Então nesse momento estás usando somente o Harbour.
Infelizmente eu não usava o clipper.
A syntaxe do comando é essa mesmo ?
Por favor poste o código que funciona no clipper reduzido ao máximo.
Caso seja um erro, irei postar no forum dos desenvolvedores.

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á

convertendo aplicação clipper 5.3 para Harbour

Mensagem por Pablo César »

Eu compilei, mas deu erro na execução:
Error PUSHBUTTON/1001 Argument error: COLORSPEC
Pode ser por falta ou forma de definir a variável COLORSPEC que o PUSHBUTTON.

Outra correção tive que fazer por falta delas: PushColor e MyFrame

Mas fora disso compilou em HMG em modo console. Veja o que compilei:

Código: Selecionar todos

#include "Getexit.ch"
#include "Inkey.ch"

Function Main()
SETMODE(25,80)
COLORSPEC:="w,R,G,N"
lOk:= .T.
@ 15, 41 GET lOk PUSHBUTTON;
     CAPTION  "   O&k   ";
     STATE { || lGo := .T., GetActive():ExitState := GE_WRITE };
     STYLE "";
     COLOR "B/W";
     GUISEND Style := MyfRAME( ATail( GetList ):Control, .F. );
     MESSAGE " Confirma o login (F10)"

READ
INKEY(0)
Return

// PushColor ?? PushColor( ATail( GetList ) ) substituido por "w/b"
// MyFrame ? 

*********************
FUNCTION MyButton( oGUI, lMode )
*********************

LOCAL nRow := oGUI:row-1
LOCAL nCol := oGUI:col-1
LOCAL nLen := Len( CharRem( "#&", oGUI:Caption ) ) + 1

LOCAL xReturn

IF lMode=Nil
   lMode:=.F.
ENDIF

oGUI:Style := ""

IF !( oGUI:HasFocus)
   xReturn := MyFrame( nRow, nCol, nRow+2, nCol+nLen, "SU" )

ELSEIF oGUI:HasFocus .AND. !lMode
   xReturn := MyFrame( nRow, nCol, nRow+2, nCol+nLen, "DU" )

ELSEIF oGUI:HasFocus .AND. lMode
   xReturn := MyFrame( nRow, nCol, nRow+2, nCol+nLen, "DD" )

ENDIF
RETURN xReturn

FUNCTION MyFrame(nLin1,nCol1,nLin2,nCol2,cTipo)
DO CASE
   CASE cTipo="SU"
        DISPBOX(nLin1,nCol1,nLin2,nCol2,1,"BG/B")
   CASE cTipo="DU"
        DISPBOX(nLin1,nCol1,nLin2,nCol2,2,"BG/B")
   CASE cTipo="DD"
        DISPBOX(nLin1,nCol1,nLin2,nCol2,1,"GR+/B")
ENDCASE
Estou achando, que a compilação não está sendo adequada, falta de alguma lib, includes ou algo assim.
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
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á

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Pablo César »

Achei este artigo falando sobre problemas (FiveWin) com o PUSHBUTTON, não sei se vem ao caso:

http://forums.fivetechsupport.com/viewt ... =3&t=20808
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
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

ola, amigos

criei o myframe do jeito que o amigo Pablo colocou e nao deu mais erro

vou continuar testendo a aplicaçao

abraços
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

colegas,

mais uma situacao:

em clipper 5.3 meu listbox é apresentado em tela cfe abaixo: repare que logo apos Venda e Produtos tem uma seta (▼) para baixo indicando que é um listbox uma lista de seleção.

Código: Selecionar todos

Operação:Venda      ▼
Saída de:Produtos   ▼
no Harbour esta assim, não aparece a seta

Código: Selecionar todos

Operação:Venda      
Saída de:Produtos   
a linha de comando é esta, lembrando que o mesmo fonte eu compilo no clipper e no Harbour

Código: Selecionar todos

   @ ls+2, ce+9, ls+8, ce+20 MYGET cTipo LISTBOX aTipos DROPDOWN SCROLLBAR WHEN lEdit .AND.;
   ( modo == "I" .OR. ( modo == "M" .AND. Upper( cTipo ) = "OR€AMENTO" ) );
   GUISEND Caption := "&Opera‡Æo:";
   GUISEND CapRow := ls+2;
   GUISEND CapCol := ce+1;
   GUISEND ColdBox   := B_SINGLE;
   GUISEND HotBox    := B_SINGLE;
   GUISEND vScroll:Style     := SCROLLBAR_V;
   GUISEND vScroll:ColorSpec := aColor[ CL_SCROLLBAR ];
   GUISEND Message := "Selecione a opera‡Æo de sa¡da de mercadoria"
alguem sabe me dizer como acertar este processo.

abraços
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á

convertendo aplicação clipper 5.3 para Harbour

Mensagem por Pablo César »

Se é a falta do caracter "▼" que estaria faltando para os usuário que estão acostumados a ver isso, então coloque-o na tela, isto é imprima esse caracter chr(31) antes de ter escrito @ ls+2, ce+9, ls+8, ce+20 MYGET...
criei o myframe do jeito que o amigo Pablo colocou e nao deu mais erro
Quê bom que sirviu a minha ajuda !
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
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

Ola, amigos

Pablo, obrigado pela força

estive reparando que alguns caracteres CHR(...) gerados em clipper não é assumido pelo Harbour vejam um exemplo abaixo no caso o CHR(18) o CHR(17).

montado em clipper 5.3 primeiro a linha de comando logo abaixo da linha de comando a tela montada

Código: Selecionar todos

Li23( aLocal[6] + ". " + Chr(18)+"³PgDn³PgUp:Move, " + Chr(17)+Chr(217) + ":Confirma, Ctrl+" + Chr(17)+Chr(217) + ":Ficha, Esc:Sai" )

Clientes. ↕│PgDn│PgUp:Move, ◄┘:Confirma, Ctrl+◄┘:Ficha, Esc:Sai
esta mesma linha compilado em Harbour, veja o efeito em tela

Código: Selecionar todos

[code]Li23( aLocal[6] + ". " + Chr(18)+"³PgDn³PgUp:Move, " + Chr(17)+Chr(217) + ":Confirma, Ctrl+" + Chr(17)+Chr(217) + ":Ficha, Esc:Sai" )

Clientes. │PgDn│PgUp:Move, ┘:Confirma, Ctrl+┘:Ficha, Esc:Sai
( se abrirmos o bloco de nota e digitar ALT+18 vai aparecer o sinal ↕ e o ALT+17 = ◄)
isso pelo que me parece vai acontecer tembem com o LISTBOX COMBOBOX TBROWSE e por ai vai,
onde posso encontrar uma tabela de caracteres para o harbour ou como reverter esta situação?

abraços
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á

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Pablo César »

Oi Amparo, tente então colocar estas linhas antes como está nesta mensagem ou utilize o hb_ansitooem/oemtoansi nesses caracteres.

https://pctoledo.org/forum/viewto ... 850#p55954
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
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

Pablo César escreveu:Oi Amparo, tente então colocar estas linhas antes como está nesta mensagem ou utilize o hb_ansitooem/oemtoansi nesses caracteres.

https://pctoledo.org/forum/viewto ... 850#p55954
nao sei se estou certo mas o
REQUEST HB_CODEPAGE_PT850
REQUEST HB_CODEPAGE_PTISO
hb_ansitooem/oemtoansi

são para XHarbour eu estou usando Harbour com a lib hbCPage.lib, e os caractres com Ç âo etc. esta normal o que nao funciona é CHR()


Pessoal, gostaria de fazer uma observação:
Estou tentando converter meus fontes feitos em clipper 5.3 para Harbour, por este motivo vou focar todos os erros e divergencias encontradas neste mesmo TOPICO, assim se outra pessoa estiver interessado em converter seus fontes, tera neste TOPICO, talvez a solução de seu problema, peço aos amigos sempre que possivel verificar a data das postagem e respostas, sempre que eu encontrar uma solução sera postado para que todos saibam.
abraços
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

Ola amigos,

como andam de CARNAVAL!!!!

pessoal ainda nao consegui descobrir por que os CHR() nao funcionam no Harbour, alguem tem alguma ideia.

abraços
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por sygecom »

Olá Amparo,
Post como está seu script de compilação, veja se tem a GTGUI.LIB linkada se tiver tire e coloque no lugar a GTWIN.LIB e veja se resolve o caso dos CHR()
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

ola amigos,

Colega Sygecom meu brmake.ini esta ssim

Código: Selecionar todos

/* BRMAKE for Harbour/xHarbour/MiniGUI Versao 2.05 - Parametros */
/* Utilizando Compilador HARBOUR */
[MINIGUI]
MiniGUI Path=C:\MINIGUI
 
[HARBOUR]
Harbour Path=C:\MINIGUI\HARBOUR
Harbour Flags= -n -m                         
 
[BCC55]
Bcc55 Path=C:\BCC55
 
[HARBOUR BASIC LIBRARY]
Lib=hbrtl.lib
LIB=RDDCDX.LIB
LIB=RDDFPT.LIB
LIB=HBSIX.LIB
LIB=HBRDD.LIB
Lib=hbvm.lib
Lib=gtwin.lib
Lib=hbLang.lib
Lib=hbmacro.lib
Lib=dbfntx.lib
Lib=dbfcdx.lib
Lib=hbcommon.lib
Lib=LibCt.lib
Lib=libmisc.lib
//lib=codepage.lib
Lib=hbCPage.lib
//Lib=DbfDbt.lib
Lib=DbfFpt.lib
Lib=Dll.lib
Lib=Socket.lib
 
[MISC]
Language=PT
Video Mode=Disabled
Compress With UPX=N
Stop=N
se eu tirar a lib gtwin e colocar a gtgui da erro na compilação como segue

Código: Selecionar todos

Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_HB_GT_WIN' referenced from
C:\MINIGUI\HARBOUR\LIB\HBRTL.LIB|gtsys
se eu tirar tambem a HBRTL da um montão de erro, se marter as duas continua aparecendo outros caracteres no lugar do escolhido.

abraços
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Usado o hbmk2 não tem tanta dificuldade.
Por que, pode ser quê, o brmake e afins não estejam acompanhando a evolução do Harbour, alguns nomes de bibliotecas foram trocas e ou deixaram de existir.
Além da complicação de usa-los. Acredito que com hbmk2 o processo seja muito mais simples.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Amparo
Usuário Nível 3
Usuário Nível 3
Mensagens: 342
Registrado em: 20 Ago 2010 10:38
Localização: caieiras / sao paulo

Re: convertendo aplicação clipper 5.3 para Harbour

Mensagem por Amparo »

ola amigos

Itamar, blza
Usado o hbmk2 não tem tanta dificuldade.
onde encontro e como configuro o hbmk2


abraço
Responder