SetMode(25,40)

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

Moderador: Moderadores

DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

SetMode(25,40)

Mensagem por DLZ »

ola Galera !
alguém sabe me dizer pq o SetMode(25,40) que funciona no Clipper não funciona no Xharbour ??

Tenho um sistema de frente de caixa e gostaria de migra-lo para o Xharbour para poder usar as Dlls das impressoras fiscais, mas ai me deparei com esse problema...
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: SetMode(25,40)

Mensagem por Maligno »

A troca do modo do vídeo é coisa simples. Em baixo nível, digo. Difícil dizer que seja um bug do XHarbour, a não ser que alguém tenha escorregado feio quando implementou a função. Mas isso ocorre na mesma máquina?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: SetMode(25,40)

Mensagem por DLZ »

ocorre em qualquer máquina, indiferente do sistema operacional.
A função inclusive retorna erro !!

Pega o mesmo programa, compila em clipper funciona, compila com Xharbour, não funciona !!


OBS: tudo isso em tela cheia..
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: SetMode(25,40)

Mensagem por Maligno »

A função inclusive retorna erro !!
Isso você não tinha dito. Qual a mensagem de erro?
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: SetMode(25,40)

Mensagem por alaminojunior »

Nota do help do xHarbour, traduzido pelo google:

Nota: se um aplicativo console é executado em tela cheia em modo texto, há apenas um número limitado de linha / coluna combinações que podem ser exibidas. Este é dependente de hardware. Combinações comuns para o número de linhas e colunas são: 25,80 | 43,80 | 50,80 | 60,80 | 25,132 | 43,132 | 50,132 | 60,132.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: SetMode(25,40)

Mensagem por Maligno »

É, se fosse em modo janela, tudo bem. O chato é que ele já tinha isso funcionando em Clipper, e em tela cheia. Realmente não vejo porque o XHarbour não poderia implementar isso, da mesma forma que era em Clipper.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: SetMode(25,40)

Mensagem por alaminojunior »

Fiz uns testes aqui, e só consegui alternar, emitindo antes:

Código: Selecionar todos

!mode con cols=80 lines=25
Mesmo assim, com 40 colunas não dá, o windows diz que não pode alternar em tela inteira, somente alterna em modo janela.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: SetMode(25,40)

Mensagem por Maligno »

O interessante é que no Clipper funciona, conforme relato do colega.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: SetMode(25,40)

Mensagem por DLZ »

Será que existe alguma alternativa ?? Alguma função de alguma outra lib que substitua o SETMode() ??
Acho que já está mais do que provado que é um BUG do Xharbour !!
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Re: SetMode(25,40)

Mensagem por alaminojunior »

Com a lib GTWVT foi, faça o teste aí.

Código: Selecionar todos

#include "Inkey.ch"
#include "gtinfo.ch"

   PROCEDURE Main
      LOCAL nMaxRow := MaxRow()
      LOCAL nMaxCol := MaxCol()

      CLS
		! cmd /c mode con cols=40 lines=25
      DO WHILE LastKey() <> K_ESC
         @ 1,1 SAY "Enter MaxRow:" GET nMaxRow PICTURE "999"
         @ 2,1 SAY "Enter MaxCol:" GET nMaxCol PICTURE "999"
         READ

         CLS

         IF SetMode( nMaxRow+1, nMaxCol+1 )
            ? "New MaxRow()", MaxRow()
            ? "New MaxCol()", MaxCol()
         ELSE
            ? "Unable to set new screen mode"
         ENDIF

         WAIT
         CLS
      ENDDO

   RETURN

INIT FUNCTION AppSetup()
REQUEST WVT_SETCODEPAGE
REQUEST HB_LANG_PT
REQUEST HB_CODEPAGE_PT850
HB_LANGSELECT("PT")
HB_SETCODEPAGE( "PT850" )
WVT_Core()
WVT_Utils()
WVT_SetCodePage(850)
Set Date format to "DD/MM/YYYY"
SetCursor(0)                                                        
Set Epoch to 1960
Set ScoreBoard Off
Set Deleted On
SET COLOR TO G/W, W+/R,,,N/GR
WVT_ObjList := {}
WVT_Stack   := {}
Wvt_SetTitle("teste DLZ 40 colunas")

nWidth := Wvt_GetScreenWidth()
do case
   case gtinfo(GTI_DESKTOPWIDTH) >= 1024
        gtinfo(GTI_FONTWIDTH, 12)
        gtinfo(GTI_FONTSIZE, 20)
        Wvt_SetFont("Lucida Console",20,12,2)
   case gtinfo(GTI_DESKTOPWIDTH) >= 800
        gtinfo(GTI_FONTWIDTH, 10 )
        gtinfo(GTI_FONTSIZE, 16 ) 
        Wvt_SetFont("Lucida Console",16,10,2)
   otherwise
        gtinfo(GTI_FONTWIDTH, 8)
        gtinfo(GTI_FONTSIZE, 17)
        Wvt_SetFont("Lucida Console",17,8,2)
endcase
SetMode(25,40)
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: SetMode(25,40)

Mensagem por DLZ »

Agradeço pelo código Alamino, porém fica em modo janela de qualquer forma !!
O que eu preciso é que fique em tela inteira com 40 colunas.., como é no clipper !
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: SetMode(25,40)

Mensagem por Maligno »

Pelo menos você sabe que, em última instância, pode fazer um programa Clipper para ser executado pelo XHarbour. É gambiarra feia, mas na falta de alternativa...
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.

---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
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: SetMode(25,40)

Mensagem por Itamar M. Lins Jr. »

Se não estou equivocado, voce define isso nas propriedades da janela. No windows/Linux.
A comandos no [x]harbour fica do jeito do clipper. Se não for usar uma lib visual mais avançada.

Inclusive no Linux eu tenho n formas de tamanho inclusive com imagens no fundo usava na época o aterm. Mais hoje o Konsole do KDE e outros tambem tem esse recurso.

Meu browse usando Linux ou windows eu defino usando MaxCol(), MaxRow(), sempre, no caso do usuário mudar a tela.

Saudações
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
DLZ
Usuário Nível 3
Usuário Nível 3
Mensagens: 184
Registrado em: 09 Jun 2008 10:09
Localização: Ibirubá - RS - Brasil

Re: SetMode(25,40)

Mensagem por DLZ »

Itamar ...
Comandos e funções do Clipper DEVERIAM funcionar iguais no Xharbour.. essa é a idéia, porém no caso do SetMode, isso não ocorre..
Inclusive na documentação do Xharbour a função SetMode() faz mensão a diversos tipos de combinação Linha x Coluna, menos da 25,40. Isso me leva a acreditar que esse recurso foi tirado no Xharbour ou foi uma "pisada na bola" !!
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: SetMode(25,40)

Mensagem por Itamar M. Lins Jr. »

DLZ escreveu:Itamar ...
Comandos e funções do Clipper DEVERIAM funcionar iguais no Xharbour.. essa é a idéia, porém no caso do SetMode, isso não ocorre..
Inclusive na documentação do Xharbour a função SetMode() faz mensão a diversos tipos de combinação Linha x Coluna, menos da 25,40. Isso me leva a acreditar que esse recurso foi tirado no Xharbour ou foi uma "pisada na bola" !!
Creio que entedi, é aquele tipo de letra, um pouco maior.
Mas é porque não é possivel usando o XP/Linux obter, pois neste dois SO que tem diversas fontes de letras e nenhuma delas tem esse formato.
Usando o Clipper no XP é possivel ?

Se não me falha a memoria já li sobre isso uma vez no Changelog do xHarbour o porquê, desse problema.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder