Página 1 de 2

Detectar modo de exibição da sessão

Enviado: 24 Jul 2008 10:35
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.

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

Enviado: 25 Jul 2008 00:14
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.

Detectar modo de exibição da sessão

Enviado: 25 Jul 2008 03:36
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).

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

Enviado: 25 Jul 2008 20:33
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

Função para avaliar tamanho da janela

Enviado: 14 Mar 2009 19:16
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

Detectar modo de exibição da sessão

Enviado: 14 Mar 2009 22:06
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.

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

Enviado: 16 Mar 2009 09:08
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.

Detectar modo de exibição da sessão

Enviado: 16 Mar 2009 09:10
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 ?

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

Enviado: 16 Mar 2009 09:12
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)

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

Enviado: 16 Mar 2009 09:14
por sygecom
Vou testar novamente o exemplo...

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

Enviado: 16 Mar 2009 09:22
por sygecom
Achei o galho aqui, vou ajustar e postar novamente.

Detectar modo de exibição da sessão

Enviado: 16 Mar 2009 09:31
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.

Detectar modo de exibição da sessão

Enviado: 16 Mar 2009 13:11
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 ?

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

Enviado: 16 Mar 2009 17:28
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.

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

Enviado: 16 Mar 2009 17:47
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.