Clipper On Line • Ver Tópico - Um outro lado da gtwvg

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

 

Um outro lado da gtwvg

Mensagempor JoséQuintas » 20 Nov 2018 09:00

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, 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

Um outro lado da gtwvg

Mensagempor JoséQuintas » 20 Nov 2018 09:06

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, 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

Um outro lado da gtwvg

Mensagempor Itamar M. Lins Jr. » 20 Nov 2018 10:21

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6927
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 309 vezes
Mens.Curtidas: 503 vezes

Um outro lado da gtwvg

Mensagempor MSDN » 20 Nov 2018 10:33

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

http://www.ni.com/white-paper/6424/pt/
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 741
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 123 vezes

Um outro lado da gtwvg

Mensagempor JoséQuintas » 20 Nov 2018 11:10

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, 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

Um outro lado da gtwvg

Mensagempor JoséQuintas » 21 Nov 2018 21:31

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, 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

Um outro lado da gtwvg

Mensagempor JoséQuintas » 22 Nov 2018 08:57

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, 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




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

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