Um outro lado da gtwvg

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Um outro lado da gtwvg

Mensagem por JoséQuintas »

Tem este lado da gtwvg, que é o jeito que eu uso:
gtwvg.png

O que tem de especial?
Multithread.
Como eu já disse, multithread é como se fossem EXEs separados.
Abri 4 janelas com o browse do mesmo arquivo.
Nada especial pra isso.

Se fosse uma LIB GUI....
Teria que ficar inventando ALIAS diferentes.... a nào ser que pudesse usar multithread.

Detalhe:
na prática equivale a 5 janelas, sendo que a primeira está oculta.
a primeira, oculta, vai fechar automaticamente quando as outras 4 forem fechadas.
Pra ficar oculta, não fiz nada demais, apenas não mostra nada na tela, por isso não aparece janela.

Não deixa de ser um recurso interessante pra usar junto com outras LIBs gráficas.
Tá precisando uma janela hwgui ou minigui que apareça a cada N segundos?
Uma janela gtwvg oculta poderia fazer isso.
Quer ficar monitorando uma pasta? idem....
Quer enviar email em background? idem...
Vai da imaginação...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Um outro lado da gtwvg

Mensagem por JoséQuintas »

Como curiosidade....

A janela em preto e branco ficou parecida com o padrão atual do Windows 10 kkkkkk
w10.png
Tanto trabalho pra ficar imitando o Windows.....
E o Windows imita o console kkkkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 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

Um outro lado da gtwvg

Mensagem por Itamar M. Lins Jr. »

Ola!
Se fosse uma LIB GUI....
Teria que ficar inventando ALIAS diferentes.... a nào ser que pudesse usar multithread.
Ainda não entendi isso ai em cima.
Porque teria que usar alias diferente ?
DBF aqui, posso abrir ele mesmo até a capacidade máxima do SO, sem MT ou com MT. Não sei pq teria que usar alias diferente.
Se chamar o EXE várias vezes, não é a mesma coisa ?
Muitos clientes aqui chamam até 3,4... vezes meu sistema, um no estoque outro nas entradas outro no contas a receber ou clientes... ficam os icones abertos na barra de tarefas.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
MSDN
Usuário Nível 4
Usuário Nível 4
Mensagens: 741
Registrado em: 28 Nov 2003 15:55
Localização: CWB
Contato:

Um outro lado da gtwvg

Mensagem por MSDN »

Eu também não tenho conhecimento para responder, mas aqui nesse link explica muito bem :

http://www.ni.com/white-paper/6424/pt/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Um outro lado da gtwvg

Mensagem por JoséQuintas »

Itamar M. Lins Jr. escreveu:Porque teria que usar alias diferente ?
Pelo que tinha visto, em GUI tinha que usar alias diferente pra uma janela não interferir na outra.
Talvez dependa da LIB GUI.
Itamar M. Lins Jr. escreveu:Se chamar o EXE várias vezes, não é a mesma coisa ?
Não exatamente, porque dá pra deixar variáveis em comum, e até deixar classes em comum.
E com isso, uma janela conversar com a outra.

Multithread são vários processos rodando ao mesmo tempo, podendo ou não estar relacionados entre si.
Em Harbour isso fica tão independente, que um QUIT em um processo não altera o outro.
Até mesmo o debug: eu posso abrir uma janela no debug acompanhando passo a passo, enquanto outra janela roda normalmente, até mesmo com outro debug.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Um outro lado da gtwvg

Mensagem por JoséQuintas »

Esqueci de dizer:

No geral, a parte chata da GTWVG é o controle dos gráficos, porque é sempre a mesma janela no aplicativo inteiro.
É ficar mostrando/escondendo/destuindo tudo que é gráfico, ao trocar de módulo e em outras situações.
Usando multithread isso simplifica, porque as janelas dos módulos ficam independentes.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"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 do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Um outro lado da gtwvg

Mensagem por JoséQuintas »

Mais outra coisa nisso.... na multithread entra a possibilidade de uso de um novo tipo de variável.

THREAD STATIC aPaint := {}

É o mesmo que STATIC mas.... vai existir uma variável STATIC para cada THREAD, ou no caso acima, pra cada janela.

Num dos usos da GTWVG, ela usa WVT_Paint() que pode ficar repintando um array, por exemplo, aPaint.
No uso normal, dos exemplos da GTWVG, ela fica salvando/restaurando essa variável, conforme troca de tela.
Com o uso da variável acima, cada janela/thread vai ter sua variável, então....fim desse "troca/troca".

Ela é útil em outras situações, como por exemplo SAVE/RESTORE Screen, ou outras coisas mais.
É deixar variáveis isoladas em cada thread, automaticamente, pra uma não interferir na outra.
Não confundir com variáveis locais, que por si só já são isoladas.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder