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.

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

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
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

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