Página 1 de 1

Trocar função MaxRow() por Wvw_MaxMaxRow()

Enviado: 06 Fev 2021 12:20
por frazato
Bom dia!
Depois de muito tempo estou tendo a necessidade de mudar de xHarbour para harbour, já tenho algumas coisas pequenas em harbour mais o meu ERP e feito em xharbour
com GTWVW, funciona bem, mais tenho que mudar, fiz vários ajuste para compilar em harbour ta rodando mais tá cheio de pau "divisor ZERO" mais vou arrumando, mais
toda fez que faço um ajuste no fonte tenho que compilar e ele recompila tudo e possível compilar apenas os alterados, estou usando HBMK2.

Outra coisa as funções de telas ficando doidas, tenho que utilizar a Wvw_MaxMaxRow() q funciona, mais gostaria de criar troca-las automatico e possivel.

Obrigado

Frazato

Trocar função MaxRow() por Wvw_MaxMaxRow()

Enviado: 06 Fev 2021 13:15
por Jairo Maia
frazato escreveu:e possível compilar apenas os alterados,
Sim, acrescente o parâmetro -inc em seu arquivo .HBP para ativar a compilação incremental.
frazato escreveu:tenho que utilizar a Wvw_MaxMaxRow()
Não conheço a Wvw_MaxMaxRow(), mas qual a diferença dela para a MaxRow()?

Trocar função MaxRow() por Wvw_MaxMaxRow()

Enviado: 08 Fev 2021 07:57
por frazato
Bom dia!
o -inc funcionou!

Quando a MaxCol() deveria no meu entendimento fazer a mesma coisa, mais por algum motivo no xharbour funcina no harbour não, mais wvw_maxmaxcol() funciona, ai teria q ajustar o sistema para usar ela, gostaria de fazer automatica sem ter que ficar mexendo em fontes.

Frazato

Trocar função MaxRow() por Wvw_MaxMaxRow()

Enviado: 08 Fev 2021 08:09
por JoséQuintas
A WVW é diferente entre 3.2 e 3.4
No 3.2 faz parte de extras, não segue o padrão normal.
No 3.4 ela foi melhorada e faz parte de contribs.
Não sei se faz diferença.

MaxRow() talvez só trabalhe na janela principal.

TALVEZ uma opção seja criar um #translate

Em todos os fontes, coloque #include "meuarquivo.ch"

E em meuarquivo.ch, coloque o que quiser alterar

#translate MaxRow() => wvw_MaxRow()
#translate MaxCol() => wvw_MaxCol()

Sempre que quiser alteração em massa, altere nesse CH.
Não deixa de ser uma opção.

Ou, com editor de textos, use replace all " MaxRow()" por " wvw_MaxRow()", e " MaxCol()" por " wvw_MaxCol()"
Assim não depende de nada externo.

Trocar função MaxRow() por Wvw_MaxMaxRow()

Enviado: 08 Fev 2021 08:13
por JoséQuintas
Mas se usa isso pra mensagem.....
Em todo fonte @ wvw_MaxRow(), 0 SAY "texto de mensagem"

Muuuuito mais fácil criar uma rotina pra mensagem e ajustar só na rotina.

Código: Selecionar todos

Mensagem( "texto da mensagem" )

FUNCTION Mensagem( cText )

   hb_Default( @cText, "" )
   Scroll( wvw_MaxRow(), 0, wvw_MaxRow(), wvw_MaxCol(), 0 )
   @ wvw_MaxRow(), 0 SAY cText

   RETURN Nil
Note que ainda assim pode ficar disponível GET.

Código: Selecionar todos

Mensagem( "Digite código" )
@ Row(), Col() + 2 GET cCampo
READ
Além de criar variações, por exemplo:

Código: Selecionar todos

IF ! MsgYesNo( "Confirma" )
   RETURN
ENDIF
...
FUNCTION MsgYesNo( cText )

   LOCAL nConfirma := "N"

   Mensagem( cText )
   @ Row(), Col() + 2 GET cConfirma PICTURE "!A"
   READ
   Mensagem()

   RETURN cConfirma == "S"

Trocar função MaxRow() por Wvw_MaxMaxRow()

Enviado: 08 Fev 2021 09:09
por frazato
Bom dia!!
Obrigado vou dar uma testa com na versão 3.4! ta dando erros nos meus menus, não estão funcionando, vou baixar a versao 3.4 e testar talvez resolva.


Frazato