Dúvida com SetMode

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

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida com SetMode

Mensagem por JoséQuintas »

Sei lá....
Em 30 anos de windows, nada mudou.
Aplicativo console usa o tamanho da letra da janela console.
Se o tamanho da letra da janela é grande, o aplicativo também vai ter letra grande.
Se alterar só na janela atual, só vale pra janela atual.
Tem que alterar no ATALHO.
No Windows 10 e 11, o atalho não é exatamente aonde clica, como era nos windows anteriores.

Também poderia usar uma GT que não dependa da configuração do Windows.
Só adicionar -gui na compilação, mas se não tiver uma errorsys adequada, vai ficar sem o erro completo quando acontecer erro.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Dúvida com SetMode

Mensagem por cjp »

Aplicativo console usa o tamanho da letra da janela console.
Se o tamanho da letra da janela é grande, o aplicativo também vai ter letra grande.
Não entendi bem esta parte. Acho que a questão não é de tamanho da letra, e sim de tamanho da janela.
Se alterar só na janela atual, só vale pra janela atual.
Tem que alterar no ATALHO.
Isso eu sei. Alterei no atalho, não na janela atual.
No Windows 10 e 11, o atalho não é exatamente aonde clica, como era nos windows anteriores.
Como assim? Onde é o atalho? Eu alterei clicando no atalho com o botão direito, escolhendo propriedades.
Também poderia usar uma GT que não dependa da configuração do Windows.
Só adicionar -gui na compilação, mas se não tiver uma errorsys adequada, vai ficar sem o erro completo quando acontecer erro.
Errorsys eu tenho.

Seria só assim?:

Código: Selecionar todos

\hb32\bin\hbmk2 processos -gui
Fiz, compilou normal e aqui testei, tá tudo normal. Mas aqui já estava funcionando. Preciso testar no computador da usuária.
Inacio de Carvalho Neto
Avatar do usuário
carlaoonline
Usuário Nível 3
Usuário Nível 3
Mensagens: 190
Registrado em: 24 Ago 2014 22:38
Localização: Porto Alegre-RS

Dúvida com SetMode

Mensagem por carlaoonline »

Tenta acessando as propriedades do aplicativo no menu esquerdo superior e deixa na altura e largura da janela as mesmas medidas do SetMode usado no programa.
Setar com as mesmas medidas do SetMode
Setar com as mesmas medidas do SetMode
Na aba "Opções", marcando ou desmarcando as caixas de seleções que estão ali alteram a forma de como o mouse e o copiar-colar funcionam.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida com SetMode

Mensagem por JoséQuintas »

Se ele passou a compilar com -gui, isso não faz mais diferença.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Dúvida com SetMode

Mensagem por lucimauro »

Com -gui essa questão da janela fica mais fácil de gerenciar
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Dúvida com SetMode

Mensagem por Jairo Maia »

cjp escreveu:Acho que a questão não é de tamanho da letra, e sim de tamanho da janela.
Sem dúvida, mas pelo que você diz, a diferença nesse computador específico está na "resolução da tela" que ela está usando. Verifique se não é isso.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
mauricioportela
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 29 Jul 2016 04:22
Localização: Vitoria da Conquista/Bahia

Dúvida com SetMode

Mensagem por mauricioportela »

Boa noite!

Eu fiz uma modificacao no codigo:

Compilar: hbmk2 testa_cor.prg -l hbct.hbc

Código: Selecionar todos

//
// Nome do Arquivo: testa_cor.prg
//
#include "box.ch"
#include "inkey.ch"

#define TRUE            .T.
#define FALSE           .F.

#define COR_PADRAO      "W+/BG,W/R,,,N/W"
#define COR_RESULTADO   "R+/BG"

FUNCTION Main()
    // -------------------------------------------------------------------------
    PUBLIC nVoltas := 1
    PUBLIC nAlturaOriginal  := MaxRow()
    PUBLIC nLarguraOriginal := MaxCol() 
    PUBLIC nAlturaDaTela    :=  5
    PUBLIC nLarguraDaTela   := 30
    // -------------------------------------------------------------------------
    SETMODE(nAlturaOriginal, nLarguraOriginal)
    @ 00, 00, nAlturaOriginal-1, nLarguraOriginal-1 BOX B_SINGLE + SPACE(1) COLOR COR_RESULTADO
    cTela1 := SAVESCREEN(01,01,nAlturaDaTela-1,nLarguraDaTela-1)
    INKEY(.5)
    // -------------------------------------------------------------------------
    WHILE TRUE
        // ---------------------------------------------------------------------
        SETMODE(nAlturaDaTela, nLarguraDaTela)
        @ 01, 01, nAlturaDaTela-1, nLarguraDaTela-1 BOX B_SINGLE + space(1) COLOR COR_PADRAO
        @ 02, 02 SAY STRZERO(nVoltas,3) + " volta" + IIF(nVoltas == 1, "", "s") COLOR COR_PADRAO
        @ 04, 02 SAY "<ESC> para Sair" COLOR COR_PADRAO
        cTela2 := SAVESCREEN(01,01,nAlturaDaTela-1,nLarguraDaTela-1)
        INKEY(2)
        If LASTKEY() == K_ESC
            EXIT
        Endif
        // ---------------------------------------------------------------------
        SETMODE(nAlturaOriginal, nLarguraOriginal)
        RESTSCREEN(01,01,nAlturaDaTela-1,nLarguraDaTela-1,cTela2)
        @ 00, 00, nAlturaOriginal, nLarguraOriginal BOX B_SINGLE COLOR COR_RESULTADO
        @ 02, 24 SAY STRZERO(GeraNumero(99999,1),5) COLOR COR_RESULTADO
        nVoltas++
        INKEY(2)
        IF LASTKEY() == K_ESC
            EXIT
        ENDIF
        RESTSCREEN(01,01,nAlturaDaTela-1,nLarguraDaTela-1,cTela1)
        // ---------------------------------------------------------------------
    ENDDO
    SETMODE(nAlturaOriginal, nLarguraOriginal)
    @ nAlturaOriginal, 00 SAY ">>>" COLOR COR_PADRAO

RETURN Nil

FUNCTION GeraNumero(lim, ini)
RETURN INT(RAND()*lim)+IIF(ini==Nil,1,ini)
Tambem criei um arquivo .bat para testar:

Código: Selecionar todos

@echo off
:: Nome do Arquivo: tcor.bat
:: mode con lines=25 cols=80
testa_cor.exe
set "meuErro=%errorlevel%"
if %meuErro% equ 0 (
    echo SUCESSO!
) else (
    echo ERRO! Codigo: %meuErro% Descricao: %errorlevel:~-4%
)
pause
Espero que ajude!

Mauricio Portela
cjp
Usuário Nível 6
Usuário Nível 6
Mensagens: 1563
Registrado em: 19 Nov 2010 22:29
Localização: paraná
Contato:

Dúvida com SetMode

Mensagem por cjp »

A compilação com -gui não resolveu.

Esta tela de configuração não aparece no computador dessa usuária. Acho que o windows é bem diferente. Quando clico com o botão direito do mouse no canto superior esquerdo da tela, aparece uma tela de configuração bem mais complexa, e não tem essas opções.
Inacio de Carvalho Neto
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Dúvida com SetMode

Mensagem por JoséQuintas »

Deveria ter resolvido, a menos que esteja forçando compilação console.
Se alterar tamanho de letras nessas propriedades, as letras do aplicativo se alteram ?
Se alterar, está compilando como console, e não gui, e terá que descobrir o porque.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
mauricioportela
Usuário Nível 2
Usuário Nível 2
Mensagens: 95
Registrado em: 29 Jul 2016 04:22
Localização: Vitoria da Conquista/Bahia

Dúvida com SetMode

Mensagem por mauricioportela »

Boa noite!

tenta isso:

Compile: hbmk2 teste.prg -gui

Código: Selecionar todos

#include "box.ch"
#include "inkey.ch"

#define TRUE    .T.
#define FALSE   .F.

#command    @ <row>, <col> MOSTRA <strt> [IF <exp> ELSE <strf>] [COLOR <cor>];
            => ;
            devpos(<row>, <col>); devout(IIF(<exp>, <strt>, <strf>) [, <cor>])

FUNCTION Main()
    LOCAL x, nContador, nLinhas, nColunas
    SETCOLOR("B/W+*")
    x         := TRUE
    nContador := 1
    WHILE TRUE
        SetMode(IIF(x,25,43),80)

        nLinhas  := MaxRow()
        nColunas := MaxCol()
        cLinhas  := STRZERO(nLinhas  +1, 2)
        cColunas := STRZERO(nColunas +1, 2)

        @ 00, 00, nLinhas -1, nColunas -1 BOX B_SINGLE + SPACE(1)
        @ 00, 02 SAY "<Modo de Video: " + cLinhas + "x" + cColunas + ">"
        @ 01, 02 SAY "Contador: " + STRZERO(nContador,3) COLOR "R/W+*"
        @ 02, 02 SAY "Modo Ativo:"

        @ 03, 02 MOSTRA "25x80" IF x ELSE "43x80" COLOR "R/W+*"
        
        @ nLinhas -1, 02 SAY "[ESC] Sair"

        x := !x
        nContador++
        INKEY(2)
        IF LASTKEY() == K_ESC
            EXIT
        ENDIF
    ENDDO
RETURN Nil
Att.
Mauricio Portela
Responder