Detectar modo de exibição da sessão

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

Moderador: Moderadores

Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Detectar modo de exibição da sessão

Mensagem por Pablo César »

Gostaria de saber se existe alguma função, seja ela em puro xHarbour ou até através de LIB gráfica para xHarbour, a fim de verificar qual é o tipo de exibição da sessão vigente, isto é, checagem de exbição de modo JANELADO ou TELA-INTEIRA. Alguém saberia se isto é possível ?.

Eu tenho conseguido resolver para os casos que o Windows é WIN98 e WIN95, através de um aplicativo externo chamado Z.COM mas não tenho solução para os casos de WINXP e VISTA.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Detectar modo de exibição da sessão

Mensagem por sygecom »

Olá Pablo,
Chegou a dar uma Procurada no Help do xHarbour para ver se tem alguma função que já faça isso ? quem sabe tem algo no help que posso ajudar.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Detectar modo de exibição da sessão

Mensagem por Pablo César »

Obrigado Leonardo por responder. Achei algo na pasta xHarbour quando procurei as strings "fullscreen" e "windowed" e olha o resultado:
* source/rtl/gtxwc/gtxwc.c
! added support for GTI_VIEWMAXHEIGHT and GTI_VIEWMAXWIDTH
* This returns the max height and width for the current display
* viewport. Meaning windowed or full Screen under Windows.
* This is used by MaxRow(.t.) and MaxCol(.t.)
* Other platforms return Maxrow() and Maxcol() values.
! Changed all internal calls to GetScreenHeight, etc to Macro
* _GetScreenHeight()/_GetScreenWidth()
GTWVW is a General Terminal (GT) driver for xHarbour PLUS some runtime library
allowing programmer to have text and GUI elements mixed, in a multi-windowed
application. GTWVW is exclusively designed for Win32 platform.
Parece que algo ao qual me refiro há muito tempo. O que preciso é criar um utilitário que ao executá-lo retorno o tipo de tela da sessão em que foi executado. Com este resultado, podemos fazer gravar num arquivo para lido numa aplicação em Clipper. A idéia é verificar as propriedades da seção e ver se tem diferenças entre TELA-CHEIA e JANELADO. Se houver, beleza ! Então podemos dar uma mensagem pro usuário que deve pressionar as teclas ALT ENTER para laternar entre os modos. Essa é a idéia, no entanto não sei nadinha de compilação com bibliotecas gráficas como parece nas citações. Por isso que estou apelando ao pessoal para elaborar esse utilitário que seria de muita ajuda (ao menos para mim).
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: Detectar modo de exibição da sessão

Mensagem por Hasse »

Somente para lembrar:

Nem sempre o atalho ALT-ENTER funcina para alternar entre janelado e full-screen. Há determinados drivers de monitor que deixam a tela preta.

Veja a mensagem que já tratou deste assunto:
viewtopic.php?f=4&t=7987&p=44696&hilit=alt+enter#p44696
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Função para avaliar tamanho da janela

Mensagem por sygecom »

Pablo César escreveu: O Leonardo postou um exemplo em xHarbour, mas aquilo só serviu para detecção do modo de uma string e nada com respeito ao ambiente.
Olá Pablo,
Estou realizando diversos testes com o Harbour e me lembrei de você e adivinha, consegui um retorno em tela cheia ou tela janelada, de uma olhada no exemplo em anexo. Talvez isso ajude na questão de diferenciar entre janela e tela cheia.

Nota de moderação: Esta mensagem foi movida da seção de utilitários (tópico WAPI), a fim de não alterar conteúdo daquele tópico e podermos proseguir com dúvidas sobre xHarbour/GTWVT
Anexos
janela.zip
(223.22 KiB) Baixado 154 vezes
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Detectar modo de exibição da sessão

Mensagem por Pablo César »

Acho que não, Leonardo... o retorno ainda não estão corretos. Pois em ambos os casos me dá como "Tela cheia". Deve ser que esses valores estão em números de pixels, será ?. Instalei o GTWVT através do xhgtk_setup.exe mas não conseguí ainda configurar direito então não consigo recompilar. Me faça um favor Leonardo, me diga como compila esse exemplo e se possível mande imprimir em tela os valores de:

HB_GTI_VIEWMAXHEIGHT
HB_GTI_VIEWMAXWIDTH

e também de:

HB_GTI_VIEWPORTHEIGHT
HB_GTI_VIEWPORTWIDTH

Daí teremos os valor quando é fullscreen e janelado e depois seria só questão de laterar o valor (creio eu).
E ainda colocar ALTD() antes de imprimir tais valores, ajudaria a fazer alguma avaliação mediante o DEBUG.

Obrigado pela atenção.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Detectar modo de exibição da sessão

Mensagem por sygecom »

Olá Pablo,
Abra um Prompt do MS-DOS e chame pelo DOS eo executavel TESTE.EXE ai vera que ele funciona, se clicar com o mouse ele sempre vai abrir em janela.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Detectar modo de exibição da sessão

Mensagem por Pablo César »

Ohhh não é isso a que eu me referia, eu ja executei e o resultado é sempre o mesmo. Tentei instalar o GTWVT mas parece estar me faltando o WVTGUI.LIB. Enfim ainda não consigo compilar. Poderia dar o caminho das pedras para saber de cómo compilar o seu exemplo ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Detectar modo de exibição da sessão

Mensagem por sygecom »

So pra deixar claro, o exemplo que postei não tem nada a haver com GTWVT, eu apenas compilei usando o hbmk2 do Harbour, ou seja o exemplo é 100% console.
Outra coisa Pablo, os teste que estou fazendo estou usando o harbour do SVN, e não do instalador da xHgtk.(Não sei se daria diferença)
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Detectar modo de exibição da sessão

Mensagem por sygecom »

Vou testar novamente o exemplo...
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Re: Detectar modo de exibição da sessão

Mensagem por sygecom »

Achei o galho aqui, vou ajustar e postar novamente.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Detectar modo de exibição da sessão

Mensagem por Pablo César »

não tem nada a haver com GTWVT..//..

..//.. estou usando o harbour do SVN ..//..
Ahhh bão ! Agora vou baixar. Mas ja te adianto, que eu não tenho muita prática em xHarbour, vou tentar. Se você puder me fazer o favor, compile para mim e anexe em forma compactada:

Código: Selecionar todos

#include "common.ch"
#include "hbgtinfo.ch"

procedure main()
cls
setmode(25,80)
? HB_GTINFO(HB_GTI_VIEWMAXHEIGHT)
? HB_GTINFO(HB_GTI_VIEWMAXWIDTH)
? HB_GTINFO(HB_GTI_VIEWPORTHEIGHT)
? HB_GTINFO(HB_GTI_VIEWPORTWIDTH)
? HB_GTINFO(13)
? HB_GTINFO(42)
altd()
INKEY(0)
return
Gostaria de fazer alguns testes com este código. Obrigado pela tua atenção.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Detectar modo de exibição da sessão

Mensagem por Pablo César »

Baixei segundo instruções do seguinte tópico: viewtopic.php?f=43&t=6701&p=45758&hilit=svn#p45758 baixei o projeto completo (acho que não haviua necessidade) mas nada, não consigo compilar direito. Acredito que algum arquivo de configuração. O pior que não achei nenhum make_b32 nem hbmk2 como mencionado.

Gostaria de saber como configurar direitinho, quais são os arquivos de configuração que devo alterar. Depois da ação do Tortoise ficou mais ainda confuso. A instalação do xHarbour peguei deste documento: http://www.4shared.com/account/file/714 ... BfmfQUedR7 portanto meus arquivos de configuração e compilação ficaram:

O arquivo C:\XHARBOUR\BIN\HARBOUR.CFG está assim:

Código: Selecionar todos

CC=BCC32
CFLAGS= -c -D__EXPORT__ -Ic:\xharbour\include  -d -Lc:\xharbour\lib
VERBOSE=YES
DELTMP=YES
O arquivo C:\BCC55\BIN\ILINK32.CFG está assim:

Código: Selecionar todos

-LC:\DESENV\BCC55\LIB;C:\DESENV\XHARBOUR\LIB
O arquivo C:\BCC55\BIN\BCC32.CFG está assim:

Código: Selecionar todos

-IC:\BCC55\INCLUDE;C:\XHARBOUR\INCLUDE
-LC:\BCC55\LIB;C:\XHARBOUR\LIB
O arqkuivo batch que serve para configurar ambiente e compilar, está assim:

Código: Selecionar todos

@ECHO OFF
PATH=C:\BCC55\BIN;c:\xharbour;c:\xharbour\bin;C:\WINDOWS;C:\WINDOWS\SYSTEM32
SET INCLUDE=c:\Bcc55\include;c:\xHarbour\include
SET LIB=c:\Bcc55\lib;c:\xHarbour\lib
SET OBJ=
SET HB_LEX=SIMPLEX
SET CFLAGS= -5 -OS -a8
SET HB_PATH=C:\XHARBOUR
HBMAKE teste.BC /e
IF ERRORLEVEL 1 GOTO ERRO
pause
teste ÿ
GOTO FIN
:ERRO
TYPE LOG.TXT
PAUSE
CLIPERRO
GOTO FIN
:FIN
PATH=C:\CLIPPER5\BIN;C:\CLIPPER5\PLL;C:\WINDOWS;C:\WINDOWS\SYSTEM32;C:\DB
SET INCLUDE=C:\CLIPPER5\INCLUDE
SET LIB=C:\CLIPPER5\LIB
SET OBJ=C:\CLIPPER5\OBJ
SET PLL=C:\CLIPPER5\PLL
SET HB_LEX=
SET CFLAGS=
SET HB_PATH=
Alguém poderia me dizer se estaria faltando definição de algumas variáveis de ambiente e outro arquivo de configuração ?
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Detectar modo de exibição da sessão

Mensagem por Itamar M. Lins Jr. »

Ola! Muita Atenção!
Baixei segundo instruções do seguinte tópico: viewtopic.php?f=43&t=6701&p=45758&hilit=svn#p45758 baixei o
O Sygecom esta utilizando o HARBOUR, esta informação é para quem esta usando o XHARBOUR, e não vai funcionar.
o XHARBOUR usa CVS enaquanto o HARBOUR usa SVN...
E por ai vai...

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Re: Detectar modo de exibição da sessão

Mensagem por Itamar M. Lins Jr. »

...Com este resultado, podemos fazer gravar num arquivo para lido numa aplicação em Clipper.
E o que tem nesse aplicativo em clipper que não pode ser compilado com o Harbour ou xHarbour ?
Usa alguma lib que não foi portada para [x]harbour?


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