Página 1 de 2
convertendo aplicação clipper 5.3 para Harbour
Enviado: 26 Fev 2011 17:03
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
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 27 Fev 2011 10:04
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.
convertendo aplicação clipper 5.3 para Harbour
Enviado: 27 Fev 2011 11:27
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.
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 27 Fev 2011 11:28
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
convertendo aplicação clipper 5.3 para Harbour
Enviado: 01 Mar 2011 16:08
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
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 01 Mar 2011 18:44
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.
no Harbour esta assim, não aparece a seta
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
convertendo aplicação clipper 5.3 para Harbour
Enviado: 01 Mar 2011 19:54
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 !
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 02 Mar 2011 09:26
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
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 02 Mar 2011 09:50
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
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 02 Mar 2011 10:43
por Amparo
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
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 07 Mar 2011 17:32
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
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 07 Mar 2011 17:43
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()
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 08 Mar 2011 11:55
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
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 09 Mar 2011 10:58
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.
Re: convertendo aplicação clipper 5.3 para Harbour
Enviado: 09 Mar 2011 18:47
por Amparo
ola amigos
Itamar, blza
Usado o hbmk2 não tem tanta dificuldade.
onde encontro e como configuro o hbmk2
abraço