Página 1 de 2
Tamanho da Janela com wvw. Alguém já conseguiu?
Enviado: 03 Fev 2007 00:09
por carlos_dornelas
Pessoal,
Alguém já conseguiu uma boa combinação com as funcoes abaixo que permita uma tela cheia (ou quase cheia) e que exiba os caracteres, como por exemplo o chr(16)? Já me bati, fiz vários testes. Com a fonte "terminal" consegui a exibição correta dos caracteres, mas a tela fica bem pequena. E o codepage, além de 255, existem outras configurações?
Já pesquisei em posts anteriores, mas não consegui resolver esse problema. Se alguém puder me dar uma luz, fico muito grato mesmo.
[]s
Antonio Carlos
wvw_setcodepage(,255)
wvw_setfont...
setmode(24,80)
Enviado: 03 Fev 2007 09:18
por Luiz
Para maximizar você pode utilizar esse código (adaptado de maximize.prg)
Código: Selecionar todos
* this dimension will be used when user presses RESTORE button
static s_nNormalMaxrow := 24
static s_nNormalMaxcol := 79
procedure main
wvw_enablemaximize(0, .t.)
wvw_maximize(0)
wait
function WVW_SIZE(nWinNum, hWnd, message, wParam, lParam)
* this function is called by gtwvw AFTER the size is changed
* WARNING: screen repainting is not performed completely by gtwvw at this point of call
local cScreen
local lNeedReset := .f., ;
maxsavedscrrow, maxsavedscrcol
if !WVW_SIZE_READY()
* program is not ready to handle window resizing
* (or this function is currently running)
return NIL
endif
if nWinNum<>0
* only care about Main Window
return NIL
endif
* avoid reentrance
WVW_SIZE_READY(.f.)
do case
case wParam == 2 //SIZE_MAXIMIZED
//alert("MAXIMIZE")
* reset is required only if we are changing size
lNeedReset := maxcol() <> wvw_maxmaxcol();
.or. maxrow() <> wvw_maxmaxrow()
if lNeedReset
maxsavedscrrow := min(min(s_nNormalMaxrow, wvw_maxmaxrow()),maxrow())
maxsavedscrcol := min(min(s_nNormalMaxcol, wvw_maxmaxcol()),maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(wvw_maxmaxrow()+1, wvw_maxmaxcol()+1) //adjust maxrow() & maxcol()
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
//diminfo() //updatescr()
endif
case wParam == 0 //SIZE_RESTORED
//alert("RESTORE")
lNeedReset := maxcol() <> s_nNormalMaxcol .or.;
maxrow() <> s_nNormalMaxrow
if lNeedReset
maxsavedscrrow := min(s_nNormalMaxrow, maxrow())
maxsavedscrcol := min(s_nNormalMaxcol, maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(s_nNormalMaxrow+1,s_nNormalMaxcol+1)
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
//diminfo() //updatescr()
endif
otherwise
* do nothing
endcase
* allow next call
WVW_SIZE_READY(.t.)
return NIL
#pragma BEGINDUMP
#include "hbapi.h"
HB_FUNC( WVW_SIZE_READY )
{
BOOL bIsReady;
static BOOL s_bIsReady = FALSE;
bIsReady = s_bIsReady;
if (ISLOG(1))
{
s_bIsReady = hb_parl(1);
}
hb_retl(bIsReady);
}
#pragma ENDDUMP
No sistema da empresa eu uso a janela maximizada somente pra vizualizar os relatórios, com ajuste de fonte manual para simular um zoom.
Quanto ao tamanho da fonte você pode deixar uma opção para o usuário da estação escolher (usando wvw_choosefont), porque depende tambem da rezolução da tela.
Enviado: 03 Fev 2007 12:52
por carlos_dornelas
Luiz, vou testar!
Obrigado mais uma vez
Antonio Carlos
Enviado: 17 Set 2007 11:49
por ederxc
Amigos , estou com um problema relacionado a funções
Não consigo compilar o sistema com essa funções da mensagem de erro como se elas não existicem o extranho é que estou usando a GTWVW e as demais funções funcionam perfeitamente o que teria que fazer para que essa funções funcionem
unresolved external
:f
Enviado: 17 Set 2007 12:17
por sygecom
Veja que no exemplo acima tem a função WVW_SIZE_READY() para vc compilar junto com o sistema...ela esta em .C e vc deve usar junto no .PRG
Enviado: 17 Set 2007 14:44
por ederxc
OK , de certo ! :)Pos
Enviado: 17 Set 2007 16:23
por ederxc
Ola amigos , tem uma coisa que não estou entendendo, quando mostro uma mensagem em maxroll() , quando esta maximizado fica um exaço abaixo dessa linha como se houve-se um alinha 25 ou seja , se minha mensagem esta setada para maxrol() pq ela não fica no final "rente a borda"
seria por acaso o expaço para uma barra de status ?? Pois bem se for , como colocar esta barra ?? :)Pos
Enviado: 18 Set 2007 00:52
por sygecom
Tche, vc esta usando tudo na mesma Janela ou esta usando Multijanela ? se estiver usando tudo nas mesma janela, de um olhada se vc esta usando algum SETMODE() para limitar o tamanho da tela....
Enviado: 18 Set 2007 07:50
por ederxc
sygecom escreveu:Tche, vc esta usando tudo na mesma Janela ou esta usando Multijanela ? se estiver usando tudo nas mesma janela, de um olhada se vc esta usando algum SETMODE() para limitar o tamanho da tela....
Leo , o problema esta na maximização da tela , eu estou usando o exemplo do SAMPLE que aconpanha no c:\XHarbour\contrib\maximize
que no caso acabei de verificar e esta dando o mesmo problema , veja que a maximizando a ultima linha não vai até o rodapé "rente a borda" penso que aquele espaço não possa ser preenchido pois não seria nele que uma barra "visual" com mensagens de "status", deveria ser inserida

?
:)Pos
Enviado: 18 Set 2007 09:24
por ederxc
ha , quanto ao setmode(24,79) ...
Enviado: 18 Set 2007 11:20
por sygecom
e se colocar SETMODE(25,80) ?
Enviado: 18 Set 2007 11:56
por ederxc
Leo creio que não tenha nada haver com o setmode() , pois , o sample ta com o mesmo problema , apenas verifique e vera que tenho razão !
c:\xharbour\contrib\gtwvw\sample\maximize
Enviado: 18 Set 2007 13:51
por sygecom
Então não faço ideia do que seja, eu uso na GTWVW como lhe passei no ultimo exemplo...
Boa Sorte !!!
Enviado: 21 Set 2007 15:18
por prodasys
Ederxc, esqueça o setmode(25,80).Na gtwvw não funciona.De uma olha no fonte abaixo.É o mais proximo que eu consegui para o meu sistema funcionar parecido com a tela do DOS na janela da GTWVW.
Enviado: 21 Set 2007 15:21
por prodasys
Código: Selecionar todos
/************************************
* PROGRAMA : GT.PRG
************************************/
# INCLUDE "GTINFO.CH"
static s_nNormalMaxrow := 25
static s_nNormalMaxcol := 84
FUNCTION GT()
WVW_SIZE_READY(.T.)
WVW_SETMAINCOORD(.T.)
IF GTINFO(GTI_DESKTOPWIDTH) = 1024
WVW_SETFONT(,"LUCIDA CONSOLE",25,12, 400)
SETCOLOR('G+/N')
@ WVW_MAXMAXROW(), 0 TO 25,WVW_MAXMAXCOL()
WVW_SBCREATE()
ELSEIF GTINFO(GTI_DESKTOPWIDTH) = 800
WVW_SETFONT(,"LUCIDA CONSOLE", 18, 10, 400)
SETCOLOR('G+/N')
@ 25, 0 TO 25,WVW_MAXMAXCOL()+1
WVW_SBCREATE()
END IF
WVW_SETCODEPAGE(,255)
SETMODE(WVW_MAXMAXROW()+1,WVW_MAXMAXCOL()+1)
wvw_enablemaximize(0, .f.)
wvw_maximize(0)
Function WVW_SIZE(nWinNum, hWnd, message, wParam, lParam)
local cScreen
local lNeedReset := .f., ;
maxsavedscrrow, maxsavedscrcol
if !WVW_SIZE_READY()
return NIL
endif
if nWinNum<>0
return NIL
endif
WVW_SIZE_READY(.f.)
do case
case wParam == 2
lNeedReset := maxcol() <> wvw_maxmaxcol();
.or. maxrow() <> wvw_maxmaxrow()
if lNeedReset
maxsavedscrrow := min(min(s_nNormalMaxrow, wvw_maxmaxrow()),maxrow())
maxsavedscrcol := min(min(s_nNormalMaxcol, wvw_maxmaxcol()),maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(wvw_maxmaxrow()+1, wvw_maxmaxcol()+1) //adjust maxrow() & maxcol()
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
endif
case wParam == 0
lNeedReset := maxcol() <> s_nNormalMaxcol .or.;
maxrow() <> s_nNormalMaxrow
if lNeedReset
maxsavedscrrow := min(s_nNormalMaxrow, maxrow())
maxsavedscrcol := min(s_nNormalMaxcol, maxcol())
cScreen := savescreen(0,0,maxsavedscrrow, maxsavedscrcol)
if setmode(s_nNormalMaxrow+1,s_nNormalMaxcol+1)
restscreen(0,0,maxsavedscrrow, maxsavedscrcol, cScreen)
endif
endif
otherwise
endcase
WVW_SIZE_READY(.t.)
return NIL
#pragma BEGINDUMP
#include "hbapi.h"
HB_FUNC( WVW_SIZE_READY )
{
BOOL bIsReady;
static BOOL s_bIsReady = FALSE;
bIsReady = s_bIsReady;
if (ISLOG(1))
{
s_bIsReady = hb_parl(1);
}
hb_retl(bIsReady);
}
#pragma ENDDUMP