Clipper On Line • Ver Tópico - HMG | SET WINDOW MAIN ON/OFF

HMG | SET WINDOW MAIN ON/OFF

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

HMG | SET WINDOW MAIN ON/OFF

Mensagempor microvolution » 05 Fev 2021 16:21

Boa tarde!
alguém sabe dizer como é realmente a sintaxe e em qual condição pode se usar os comandos:
SET WINDOW MAIN ON
SET WINDOW MAIN OFF

pelo que percebi se eu usar antes da criação do MAIN WINDOW ela funciona...
se colocar depois não funciona...
mas, afinal, onde tem um tutorial com a sintaxe correta e como usar?

Onde quero usar:
- tenho uma main window em hmg 3.5 e quero chamar módulos (feitos em GTWVG) que ainda não estão em form window da hmg (nem pretendo fazer a migração).
Então, quero chamar o módulo e desativar a WINDOW MAIN da HMG, usando o SET WINDOW MAIN OFF.
Após encerrar o processo quero usar SET WINDOW MAIN ON.
Mas, apareceu erro de sintaxe na compilação.
se alguém souber!
antes que alguém solicite pra eu ver... já vi o exemplo da tela de splash em hmg\samples\
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

HMG | SET WINDOW MAIN ON/OFF

Mensagempor marcosgambeta » 05 Fev 2021 17:43

Se você quer esconder a janela principal e depois voltar a mostra-la, os comandos são outros:

// do arquivo i_window.ch

#xcommand SHOW WINDOW <name> ;
   =>;
   DoMethod ( <"name"> , 'Show' )

#xcommand HIDE WINDOW <name> ;
   =>;
   DoMethod ( <"name"> , 'Hide' )
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HMG | SET WINDOW MAIN ON/OFF

Mensagempor marcosgambeta » 05 Fev 2021 18:04

Testei aqui e a ideia funcionou corretamente.

#include "minigui.ch"

REQUEST hb_gt_gui_default
REQUEST hb_gt_wvt

PROCEDURE Main()

   DEFINE WINDOW MainWindow ;
      AT 100, 100 ;
      WIDTH 640 ;
      HEIGHT 480 ;
      TITLE "Teste" ;
      MAIN

      DEFINE MAIN MENU
         POPUP "Menu"
            ITEM "Janela 1" ACTION telaconsole1()
            ITEM "Janela 2" ACTION telaconsole2()
         END POPUP
      END MENU

   END WINDOW

   ACTIVATE WINDOW MainWindow

RETURN

STATIC FUNCTION telaconsole1()

   LOCAL cCampo1 := space(30)

   IF !OpenConsole( "Janela console 1", .T., .F. )
      RETURN NIl
   ENDIF

   @ 10,10 SAY "CAMPO1:" GET cCampo1

   READ

   ? cCampo1

   WAIT

   CloseConsole()

RETURN NIL

STATIC FUNCTION telaconsole2()

   LOCAL cCampo1 := space(30)
   LOCAL cCampo2 := space(50)

   IF !OpenConsole( "Janela console 2", .T., .F. )
      RETURN NIl
   ENDIF

   @ 8,10 SAY "CAMPO1:" GET cCampo1
   @ 10,10 SAY "CAMPO2:" GET cCampo2

   READ

   ? cCampo1
   ? cCampo2

   WAIT

   CloseConsole()

RETURN NIL


#include "hbgtinfo.ch"

STATIC lFlag := .F.
STATIC pNewGT
STATIC pOldGT

FUNCTION OpenConsole( cTitle, lAltEnter, lClosable )

   IF lFlag
      RETURN .F.
   ENDIF
   
   DoMethod( "MainWindow", "Hide" )

   lFlag := .T.

   pNewGT := hb_gtCreate( "WVT" )
   pOldGT := hb_gtSelect( pNewGT )

   CLS

   hb_gtInfo( HB_GTI_WINTITLE, cTitle )
   hb_gtInfo( HB_GTI_ALTENTER, lAltEnter )
   hb_gtInfo( HB_GTI_CLOSABLE, lClosable )

RETURN .T.

FUNCTION CloseConsole()

   IF !lFlag
      RETURN .F.
   ENDIF

   lFlag := .F.

   hb_gtSelect( pOldGT )
   pNewGT := NIL

   DoMethod( "MainWindow", "Show" )

RETURN .T.


Talvez fazendo desta forma (esconder a janela main sempre que mostrar a janela de console), você consiga a estabilidade que precisa.
Atenciosamente,
Marcos Antonio Gambeta
marcosgambeta
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 318
Data de registro: 16 Jun 2005 22:53
Curtiu: 2 vezes
Mens.Curtidas: 40 vezes

HMG | SET WINDOW MAIN ON/OFF

Mensagempor Claudio Soto » 05 Fev 2021 19:47

Por defecto en HMG siempre debe existir una ventana MAIN y debe ser la primera ventana en activarse y siempre que se cierra la ventana MAIN se termina el programa.

SET WINDOW MAIN [ FIRST ] ON|OFF

Cuando es OFF permite que otras ventanas que no sean la MAIN se activen primero, inclusive cuando es OFF no es necesario que exista una ventana MAIN en la aplicacion.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes

HMG | SET WINDOW MAIN ON/OFF

Mensagempor microvolution » 05 Fev 2021 22:37

meu caso é o seguinte:
- compilei um grande sistema usando a LIB GTWVG para simular o CONSOLE com uma cara mais bonita;
- uso apenas PUSHBUTTON apenas numa tela e uso LOADIMAGE apenas para splash;
- tudo é compilado dentro da IDE/HMG ou via BUILD.BAT e tem funcionado perfeitamente...
até... que resolvi melhorar um pouco mais o visual da aplicação, fazendo o seguinte:
- tela splash, resolvi, usar o exemplo SPLASH da SAMPLES HMG e deu certo;
- as mensagens de interação com o usuário (todas) são da HMG e deu certo;
- então, resolvi fazer um FORM MAIN WINDOW para só ele ser 100% em HMG...
aí que começou os problemas...

para alguns, já estão atá cansados de eu falar sobre isso...
mas, quem sabe, num futuro o Viktor e/ou o(s) mantenedores da HMG achem uma solução, pois, quando a partir do momento que se é acionada a janela GTWVG, ao retornar (retorna perfeitamente) e fecha, pois a janela GTWVG é iniciada com o objeto WVGCRT ou WVGDIALOG...
no momento do DESTROY e isso ocorre perfeitamente, é criada uma outra tela PRETA do nada que fica (escondida) atrás da FORM WINDOW MAIN da HMG.
Mas, a partir daí, aparecem erros de macrosubstitução ("&") ou "=" ou "==" nos arquivos da LIB HMG, que já falei sobre eles noutros grupos.
Então, estou pensando numa forma de separar as LIBs em tempo de execução, talvez um MT=YES (não sei como fazer os comandos/funções) para que quando a HMG chamar a instância GTWVG ela seja como se fosse outro programa e quando retornar ao FORM MAIN WINDOW da HMG, não interfira na HMG.
Daí, alguém me disse pra testar SET WINDOW MAIN ON/OFF que daria certo...
é KKK pra não isniff, traduzindo: "é rir pra não chorar"
Grato,
MICROVOLUTION - 16 anos Evoluindo Com Você!


Você já leu a Bíblia hoje?
João 3:16 - Porque Deus amou ao mundo de tal maneira que deu seu Único Filho para que todo aquele que nEle crê não pereça mas tenha a Vida Eterna!
microvolution
Usuário Nível 5

Usuário Nível 5
 
Mensagens: 1175
Data de registro: 02 Set 2011 22:17
Curtiu: 59 vezes
Mens.Curtidas: 17 vezes

HMG | SET WINDOW MAIN ON/OFF

Mensagempor Claudio Soto » 06 Fev 2021 15:11

En la carpeta SAMPLES de HMG vienen algunos ejemplos de aplicacion MT en ambiente GUI.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Avatar de usuário

Claudio Soto
Colaborador

Colaborador
 
Mensagens: 555
Data de registro: 27 Ago 2012 12:31
Cidade/Estado: Uruguay
Curtiu: 35 vezes
Mens.Curtidas: 166 vezes




Retornar para MiniGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 11 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