Clipper On Line • Ver Tópico - Ajuda com GTWVW

Ajuda com GTWVW

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

Moderador: Moderadores

 

Ajuda com GTWVW

Mensagempor luiz augusto » 19 Mar 2020 10:40

Bom dia,

Uso o comando abaixo pra gerar a janela principal do sistema:
nCurWindow := WVW_nOpenWindow( '', 00, 00, ScreenWidth, ScreenHeight, WS_CAPTION|WS_MINIMIZEBOX|WS_MINIMIZE|WS_MAXIMIZE, -1 )

Quando informo -1 no ultimo parametro, cria duas telas;
Quando informo 1 no ultimo parametro, mostra uma mensagem de erro : Invalid Parent Window. Ao sair da mensagem, abre o sistema normalmente e não gera a segunda tela, somente uma. E isso, é exatamente o que preciso.

Olhando no fonte da GTWVW, na linha onde é gerada a mensagem de erro, fiquei confuso, não sou "expert" em C, mas conforme a definição do comando para o ultimo parametro:
*nParentWin is parent window of the new on we're about to open.
* default is: current window (in Standard Mode)
* last window (in MainCoord Mode)
* If you want the new window to not have parent,
* pass -1 as nParentWin.
*
Se entendi correto, o -1 não abriria a segunda janela, mas abre. Se passo 1, mostra a mensagem de erro:

if (iParentWin > (INT)s_pWvwData->s_usNumWindows-1)
{
MessageBox( NULL, TEXT("Invalid Parent Window"),
"Error", MB_ICONERROR );
hb_retni( 0 );
return;
}

Pensei em alterar e não mostrar mais a mensagem, porque não fica legal toda vez que abrir o sistema, mostrar mensagem de erro. Algum colega pode me ajudar com a rotina e a nova compilação da GTWVW?

Agradeço pela ajuda,
Luiz Augusto
Penha - SC
luiz augusto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 22 Jul 2019 11:37
Cidade/Estado: Penha/SC
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Ajuda com GTWVW

Mensagempor JoséQuintas » 19 Mar 2020 11:24

Já tentou usar o parâmetro correto ?
o parâmetro é uma indicação de janela, ou indica -1 pra ser livre ou indica o handle de uma janela existente.
Indicou 1 porque? existe a janela com handle 1 ?

E WVW tem manual, inclusive o único disponível em português:

https://harbour.github.io/doc/pt-br/gtwvw.html#wvw_nopenwindow
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ajuda com GTWVW

Mensagempor luiz augusto » 19 Mar 2020 11:38

Obrigado por responder Quintas,

Na verdade minha tela é a 0(zero), janela principal do sistema. Acontece que se colocar -1, cria duas telas, uma com todas as informações do sistema e outra em branco, quando coloco -1 ou se não coloco nada no parametro. Agora, se coloco 1, não cria a segunda tela, mas mostra a mensagem de erro, e mesmo mostrando a mensagem, o sistema funciona normal.

Luiz
luiz augusto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 22 Jul 2019 11:37
Cidade/Estado: Penha/SC
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Ajuda com GTWVW

Mensagempor JoséQuintas » 19 Mar 2020 13:40

luiz augusto escreveu:Na verdade minha tela é a 0(zero), janela principal do sistema.
Acontece que se colocar -1, cria duas telas, uma com todas as informações do sistema e outra em branco


Na verdade você já tem janela a janela default, mas mesmo assim está criando outra.

Por acaso indicou -gui ? se não indicar vai aparecer a janela do console, será que não é essa é problema?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ajuda com GTWVW

Mensagempor luiz augusto » 19 Mar 2020 16:59

Quintas escreveu:
Por acaso indicou -gui ? se não indicar vai aparecer a janela do console, será que não é essa é problema?

Uso xbuildw.exe pra compilar meus sistemas, em xharbour, este em particular é modo console com gtwvw.
Informei -gui na compilação e -1 no parametro e continua aparecendo a segunda tela. Se colocar 1 no parametro, não mostra a segunda tela mas mostra a mensagem de erro. Só vejo uma maneira de resolver isso, alterar no fonte da gtwvw e recompilar.

/*
if( iParentWin > ( wvw->iNumWindows - 1 ) )
{
hb_errRT_TERM( EG_ARG, 10003, "Invalid parent window", HB_ERR_FUNCNAME, 0, 0 );
hb_retni( 0 );
return;
}
*/
dai não mostra a mensagem e nem a segunda tela.

Luiz
luiz augusto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 22 Jul 2019 11:37
Cidade/Estado: Penha/SC
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Ajuda com GTWVW

Mensagempor JoséQuintas » 19 Mar 2020 17:36

É que está querendo deixar sem a janela principal, esse é o problema.
Porque não pode ser a própria janela principal como abertura?

Outra opção:
Criar só a primeira janela como GTWVG, e deixar invisível, uma Main() invisível.

PROCEDURE HB_GTSYS
REQUEST HB_GTWVG_DEFAULT
RETURN

Não use em Main() nem setmode(), nem nada que use tela.

E caso feche sozinha:

PROCEDURE Main()
....

hb_TheadWaitForAll()
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ajuda com GTWVW

Mensagempor JoséQuintas » 19 Mar 2020 17:40

Só explicando melhor:

A GTWVW abre... pronto tá lá a janela principal

Aí cria uma nova janela... ficam duas.

Se não tiver janela principal... talvez o aplicativo feche sozinho.
A GTWVG, é porque conheço, ela pode ser a janela principal e ficar escondida.

Se não usar multithread, sem problemas.
Se usar multithread, talvez fecha sozinha tudo, por isso o hb_ThreadWaitForAll, somente SE acontecer isso.

Tá querendo usar diferente... acaba precisando de alternativas diferentes.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ajuda com GTWVW

Mensagempor luiz augusto » 20 Mar 2020 10:14

Bom dia Quintas,

Não quero usar diferente, o que eu quero é desabilitar o button - ( minimizar ) e maximizar e o X da saida( esse eu consegui ), usando estes comandos:

// Disable MAXIMIZE button
WVW_EnableMaximize( nCurWindow, .f. )

// desabilita o X para fechar a janela
WVW_NoClose( nCurWindow )

Para o minimizar não achei como fazer; mas o comando WVW_nOpenWindow() faz isso, o unico inconveniente é a mensagem de erro que aparece quando abro o sistema.

É isso,
{}´s
Luiz
luiz augusto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 22 Jul 2019 11:37
Cidade/Estado: Penha/SC
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Ajuda com GTWVW

Mensagempor frazato » 20 Mar 2020 16:00

*********************************************************
FUNCTION AbreJanela( cTitulo, nLI, nCI, nLF, nCF, nTipo )
*********************************************************
   local nWin
   default nTipo to WS_CAPTION

   if ( nWin := WVW_nOpenWindow( cTitulo, nLI, nCI, nLF, nCF, nTipo ) ) == 0
      Alerta("Erro na criacao da janela " + cTitulo+;
             'Favor verificar o tamanho da resolucao da Tela!'+;
             'Linha Final:'+str(nLF,11))
      return 0
   endif
RETURN nWin

//
// FUNCAO     : FechaJanela()
// PARAMETROS : -
// DESCRICAO  : Jeito diferente de chamar WVW_lCloseWindow()
// RETORNO    : .T. se conseguiu fechar janela, caso contrario .F.
//
**********************
FUNCTION FechaJanela()
**********************
RETURN WVW_lCloseWindow()
frazato
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 219
Data de registro: 08 Jul 2004 07:45
Curtiu: 0 vez
Mens.Curtidas: 4 vezes

Ajuda com GTWVW

Mensagempor JoséQuintas » 20 Mar 2020 20:59

Só assim

PROCEDURE MAIN

   WVW_NOpenWindow( "teste", 0, 0, 24, 79 )
   @ 3, 3 SAY "ola mundo"
   Inkey(0)
   wvw_lCloseWindow()

PROCEDURE HB_GTSYS

   REQUEST HB_GT_WVG_DEFAULT

   RETURN


Compilar usando hbmk2 arquivo.hbp gtwvg.hbc gtwvw.hbc

gtwvw.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ajuda com GTWVW

Mensagempor JoséQuintas » 20 Mar 2020 21:02

Assim não vai:

PROCEDURE MAIN

   WVW_NOpenWindow( "teste", 0, 0, 24, 79 )
   @ 3, 3 SAY "ola mundo"
   Inkey(0)
   wvw_lCloseWindow()

PROCEDURE HB_GTSYS

   REQUEST HB_GT_WVW_DEFAULT

   RETURN


gtwvw2.png
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ajuda com GTWVW

Mensagempor JoséQuintas » 21 Mar 2020 10:34

Corrigindo:
Em nenhum dos dois casos.
O nome na janela sugere que com GTWVG a GTWVW não funcionou.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18007
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Ajuda com GTWVW

Mensagempor luiz augusto » 31 Mar 2020 12:35

Boa tarde,

Obrigado pelas respostas, mas nada funcionou, porém, se alguem puder alterar as linhas abaixo na GTWVW.C e recompilar a lib, dai, vai resolver.
Alterar aqui:
if( iParentWin > ( wvw->iNumWindows - 1 ) )
{
hb_errRT_TERM( EG_ARG, 10003, "Invalid parent window", HB_ERR_FUNCNAME, 0, 0 );
hb_retni( 0 );
return;
}

Grato,
Luiz
luiz augusto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 22 Jul 2019 11:37
Cidade/Estado: Penha/SC
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Ajuda com GTWVW - RESOLVIDO

Mensagempor luiz augusto » 26 Out 2020 14:45

Boa tarde,

Depois de muita pesquisa( tentativa erros e acertos ), finalmente consegui resolver o problema, das duas telas e dos buttons minimize, maximize e cancel( button X ), como segue:

- Não usar o comando WVW_nOpenWindow( cTitulo, nLI, nCI, nLF, nCF, nTipo ), porque ele abre a segunda janela;

- Abaixo a configuração correta:

nCurWindow := WVW_nNumWindows()-1 // == 0, Main Window

// não deixa fechar sua aplicação com ALT+F4
WVW_SetAltF4Close( .f. )

// Disable MAXIMIZE button
WVW_EnableMaximize( nCurWindow, .f. )

WVW_Maximize( nCurWindow )

// desabilita o X para fechar a janela
WVW_NoClose( nCurWindow )

// Con titulo, sin X ni Menu
WVW_SetWinStyle( nCurWindow, DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION )

WVW_SetTitle( 0, "Titulo do sistema" )

Utilizando desta forma, abre somente a janela principal, sem os buttons.

Boa Semana,
Luiz Augusto
luiz augusto
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 9
Data de registro: 22 Jul 2019 11:37
Cidade/Estado: Penha/SC
Curtiu: 0 vez
Mens.Curtidas: 0 vez




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 7 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro