Página 2 de 2

Dúvida com SetMode

Enviado: 30 Abr 2023 15:00
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.

Dúvida com SetMode

Enviado: 01 Mai 2023 23:20
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.

Dúvida com SetMode

Enviado: 02 Mai 2023 08:01
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.

Dúvida com SetMode

Enviado: 02 Mai 2023 11:20
por JoséQuintas
Se ele passou a compilar com -gui, isso não faz mais diferença.

Dúvida com SetMode

Enviado: 02 Mai 2023 19:21
por lucimauro
Com -gui essa questão da janela fica mais fácil de gerenciar

Dúvida com SetMode

Enviado: 03 Mai 2023 15:12
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.

Dúvida com SetMode

Enviado: 04 Mai 2023 00:24
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

Dúvida com SetMode

Enviado: 08 Mai 2023 13:50
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.

Dúvida com SetMode

Enviado: 08 Mai 2023 14:21
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.

Dúvida com SetMode

Enviado: 08 Mai 2023 18:00
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