Formulário de Notificações Temporárias
Moderador: Moderadores
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
Pessoal, estou querendo implementar, mas, não encontrei nada na internet, um formulário contendo as últimas alterações do meu sistema, para que o usuário possa ler, pois o manual com todos os "releases", infelizmente ele(s) não lê(em).
Seria algo como o do facebook, onde esse formulário que pode ser em GTWVG ou HMG, apareça na tela assim que ele fizer login no sistema e só fecha após clicar no "x" ou "ok".
Esse formulário também tenha um tipo de chek-box, onde esteja assim:
"não mostrar essa tela novamente". Caso ele marque, não aparecerá mais para ele.
Assim, toda alteração que a gente fizer no sistema, aparecerá a notificação obrigatória para que ele(a) leia e teste as novidades.
Algum dos colaboradores deste nosso precioso fórum tem alguma noção ou já tenha feito, pra nos auxiliar com um código mais enxuto?
gracias!
Seria algo como o do facebook, onde esse formulário que pode ser em GTWVG ou HMG, apareça na tela assim que ele fizer login no sistema e só fecha após clicar no "x" ou "ok".
Esse formulário também tenha um tipo de chek-box, onde esteja assim:
"não mostrar essa tela novamente". Caso ele marque, não aparecerá mais para ele.
Assim, toda alteração que a gente fizer no sistema, aparecerá a notificação obrigatória para que ele(a) leia e teste as novidades.
Algum dos colaboradores deste nosso precioso fórum tem alguma noção ou já tenha feito, pra nos auxiliar com um código mais enxuto?
gracias!
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 - 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!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formulário de Notificações Temporárias
Usei isso há uns 20 anos atrás.
Era até automático no VB6, como opção de criar um modelo de aplicativo.
Era até automático no VB6, como opção de criar um modelo de aplicativo.
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/
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/
-
Kapiaba
- Colaborador

- Mensagens: 1908
- Registrado em: 07 Dez 2012 16:14
- Localização: São Paulo
- Contato:
Formulário de Notificações Temporárias
Olá, vejas se a sua linguagem tem a função MsgList() ou Tips().
Regards, saludos.
Regards, saludos.
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
eu uso o harbour que vem dentro da HMG 3.5.Kapiaba escreveu:Olá, vejas se a sua linguagem tem a função MsgList() ou Tips().
Como dentro do harbour tem a contribs/gtwvg eu uso um mix de GTWVG + HMG (Console e GUI) juntos num só programa.
Não consegui localizar na HMG e nem na GTWVG essas funções internas:
grato por interagir conosco!MSGLIST() e TIPS()
Meu nobre, como é um especialista em GTWVG, achei o seguinte na pasta contribs\gtwvg\tests da HMG 3.5 que é o mesmo do harbour 3.4 do Viktor Szakats:JoséQuintas escreveu:Usei isso há uns 20 anos atrás.
Dentro do DEMOWVG.PRG (VOUCH) tem as seguintes funções, do sub-menu: MODELESS DIALOGS, DYNAMIC DIALOG MODAL, que em parte, dá pra fazer o que estou querendo.
Então, aproveitei parte do código, mesmo colocando os #DEFINE que faltavam, tais como:
Código: Selecionar todos
******** retirei do arquivo hbwin.ch pra funcionar
#define WIN_WM_TIMER 275
#define WIN_WM_COMMAND 273
#define WIN_WM_INITDIALOG 272
#define WIN_WM_DESTROY 2
******** retirei do arquivo hbwin.ch pra funcionar
******** retirei do arquivo wvtwinlg.ch pra funcionar
#define WM_TIMER WIN_WM_TIMER
#define WM_COMMAND WIN_WM_COMMAND
#define WM_INITDIALOG WIN_WM_INITDIALOG
#define WM_DESTROY WIN_WM_DESTROY
******** retirei do arquivo wvtwinlg.ch pra funcionarMas, as funções abaixo NÃO apresentaram o erro de funções indefinidas:wapi_IsDlgButtonChecked()
SetFonts()
wapi_SendMessage()
wapi_CheckDlgButton()
pelo meu humilde conhecimento e pesquisa na internet pelo WAPI_ISDLGBUTTONCHECKED, encontrei do Viktor um arquivo por nome de HBWIN.HBX que contém esses nomes, mas, dentro da hmg, na pesquisa aqui no meu computador, achei esse arquivo HBWIN.HBX e está dentro da pasta harbour\contrib\hbwin;wapi_GetDlgItem()
wapi_SetDlgItemText()
wapi_MessageBox()
Desculpe a pergunta que pode ser idiota: "como faço para incluir esse arquivo dentro do sistema"?
E agora José Quintas, quem poderá nos defender?é um tipo de #include hbwin.hbx ou #include hbwin.ch?
rsrs
Pode, nos ajudar?
obs de última hora:
1)
#include hbwin.ch já estava no meu sistema
2)
#require hbwin.ch - não estava e coloquei e não deu certo
3)
no caso do HBWIN.HBX é uma lib que tem que ser inclusa como o HBWIN.HBC?
4)
o HBWIN.HBC já está incluso como lib adicional na IDE/HMG, bem como está a GTWVG.HBC, mas, mesmo assim acontece o erro.
5)
como se adiciona o HBWIN.HBX dentro do meu sistema????
6)
aliás, no arquivo HBWIN.HBX que vem dentro da HMG.3.5\CONTRIBS\HBWIN não existem as funções que estão aparecendo como indefinidas.
Somente dentro do HBWIN.HBX que está no github do VIKTOR é que tem essas funções abaixo que estão apresentando erro de "funções indefinidas":
Código: Selecionar todos
wapi_IsDlgButtonChecked()
SetFonts()
wapi_SendMessage()
wapi_CheckDlgButton()E, agora José, quais funções são substitutas e que estão dentro do harbour da HMG 3.5?
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 - 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!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formulário de Notificações Temporárias
Quer fazer o que?
Uma dialog com um checkbox ?
HMG deve ter isso de sobra, porque complicar tanto?
Uma dialog com um checkbox ?
HMG deve ter isso de sobra, porque complicar tanto?
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/
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/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
Se o usuário for usar o sistema ainda 100% console com gráficos da GTWVG, não dá pra usar os forms da HMG, exceto as MSG's.JoséQuintas escreveu:HMG deve ter isso de sobra, porque complicar tanto?
Pra ele marcar pra não ver novamente o "você sabia..."JoséQuintas escreveu:Uma dialog com um checkbox ?
Resumindo, pretendo fazer 2 modelos, um em 100% hmg (já sei fazer) e outro pra rodar em ambos em 100% gtwvg, não sei fazer!
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 - 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!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formulário de Notificações Temporárias
Não entendo porque precisa fazer nos dois.microvolution escreveu:Resumindo, pretendo fazer 2 modelos, um em 100% hmg (já sei fazer) e outro pra rodar em ambos em 100% gtwvg, não sei fazer!
O único problema de GTWVG é que ela costuma usar os controles padrão do Windows, e por esse motivo provavelmente ter problema com cores.
Acho até que já usou tudo que precisa em outro fonte.
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/
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/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
se a gente fizer um formulário hmg com botões, labels, checkbox, etc... já sei fazer.JoséQuintas escreveu:Não entendo porque precisa fazer nos dois.
O problema é o seguinte:
- como estou ainda migrando o sistema de console para gui, cerca de 85% ou mais do código, está ainda em console, com apenas GTWVG para simular uma tela gráfica, mas, console.
- Apenas a tela de splash, tela de login e main win (formulário principal) que já estão em 100% HMG.
Mas, qual o problema então?
Como ainda está funcionando em forma beta, deixei uma opção interna que só meu usuário/senha de administrador é que se muda para:
1- console/wvg;
2- console/wvg/hmg;
Na primeira opção, os códigos de criação de formulários MainWindow da HMG não funcionam, somente na segunda opção.
Por isso, preciso aprender a fazer esse formulário(tela console/wvg) de notificações baseada na GTWVG que funciona tanto em console, quando na HMG com formulários padrão windows.
Já se eu desenvolver um formulário HMG e estiver habilitada a opção (1 - console/wvg) não irá funcionar, pois não está habilitada para forms HMG.
Expliquei ou compliquei?
Por isso, vi no exemplo DEMOWVG.prg a tal tela que mencionei anteriormente, mas, ela é diferente do pacote do Viktor para o oficial da HMG 3.5 (.0.1)
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 - 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!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formulário de Notificações Temporárias
Radicalize geral.
Primeiro organize os fontes
Se possível, compile com -w3 -es2
Procure usar multithread, e misture tudo que quiser, sem limitações.
Acho que dá até pra usar GTWVG + HMG + HWGUI ao mesmo tempo.
Sobre HMG: Tem lá uma opção de não trabalhar com Main Window, isso resolve muitos problemas.
Sobre o aplicativo: Já deveria estar liberando. Tem que funcionar no cliente, não na sua máquina, é justamente lá que os problemas acontecem.
Primeiro organize os fontes
Se possível, compile com -w3 -es2
Procure usar multithread, e misture tudo que quiser, sem limitações.
Acho que dá até pra usar GTWVG + HMG + HWGUI ao mesmo tempo.
Sobre HMG: Tem lá uma opção de não trabalhar com Main Window, isso resolve muitos problemas.
Sobre o aplicativo: Já deveria estar liberando. Tem que funcionar no cliente, não na sua máquina, é justamente lá que os problemas acontecem.
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/
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/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
já está. só as alterações que não. O formulário de notificações é pra que o usuário tente descobrir sozinho o passo-a-passo de como colocar em prática as novas alterações...JoséQuintas escreveu:Sobre o aplicativo: Já deveria estar liberando
tô mudando aqui pra fazer um WVGCRT, e, o texto estou usando um WVG_MESSAGEBOX, mas, ele tem largura pequena, parece ser 20 caracteres e altura enorme.
Pergunto, existe algum tipo de @ SAY de apenas uma linha que dê quebra de linha automaticamente, após passar de 80 caracteres na tela?
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 - 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

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
já tentei, mas, achei muito difícil, pois são tantos os erros que apresentam rsrsrsJoséQuintas escreveu:Se possível, compile com -w3 -es2
se o "basicão" agarra e "morde sem ter dentes", quanto mais uma coisa complexa como esta da thread. Até no delphi que estou desenvolvendo mobile, isso tá pegando!JoséQuintas escreveu:Procure usar multithread, e misture tudo que quiser, sem limitações.
eu vi uma postagem sua sobre o assunto nalgum lugar aqui no fórum, interessante, mas, muito complexo ainda pra mim.JoséQuintas escreveu:Acho que dá até pra usar GTWVG + HMG + HWGUI ao mesmo tempo.
não sei se vai dar certo, pois já tentei e não fui feliz na tentativa.JoséQuintas escreveu:Sobre HMG: Tem lá uma opção de não trabalhar com Main Window, isso resolve muitos problemas.
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 - 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!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formulário de Notificações Temporárias
Pode ser mais fácil do que todo resto.
E vai te obrigar a trabalhar direito, o que é bom.
E vai te obrigar a trabalhar direito, o que é bom.
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/
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/
-
microvolution
- Usuário Nível 5

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
V.Sa. já tentou me ensinar. Acontece que compilo via IDE/HMG, pois via .BAT ou via .BUILD (com ajuda do Dr. Soto) não deram certo.JoséQuintas escreveu:E vai te obrigar a trabalhar direito, o que é bom.
Se na compilação de dentro da IDE/HMG (F5) tiver como colocar os parâmetros sugeridos, por favor, nos mostre, pra gente melhorar, afinal, estamos em construção também!
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 - 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

- Mensagens: 1231
- Registrado em: 02 Set 2011 22:17
- Contato:
Formulário de Notificações Temporárias
Bom dia nobres professores(as)!
Não é o q eu queria, mas, como não consegui desvendar o mistério, fiz de forma tradicional o formulário Notificações que será exibido, tanto em console/WVG, quanto em 100% GUI/HMG. Como fiz?
1- usei um WVGCRT pra criar uma tela com informações que seriam usadas somente nela;
2- usei @ say pra preencher individualmente todas as 24 linhas da tela;
3- tem um inkey(0) impedindo o fechamento automático da tela, sem que o usuário possa ler ou decidir fechar;
4- para a pergunta, usei o seguinte código:
A chamada a essa função é muito simples, que dispensa esclarecimentos.
A MSGYESNO() da HMG é do tipo NÃO MODAL, ou seja, ela fica solta e se por ventura o usuário clicar noutro lugar da tela do windows, pode acontecer de não se ver a mensagem de confirmação automaticamente, tendo que ficar procurando-a num dos programas abertos;
Já a WVGSIMNAO() personalizada, é do tipo MODAL e enquanto a tela de NOTIFICAÇÕES não for fechada com o SIM ou NÃO ela ficará grudada nela.
5- Quando se sai da PERGUNTA, e, para poupar criação de uma nova tabela somente para salvar a resposta se SIM ou se NÃO, eu uso a regedit mesmo para salvar nas configurações do usuário. Com isso, se o usuário responder SIM, é criada um registro na REGEDIT (não importa qual o versão do win xp ou superior 32/64) por nome de NOTIFICACAO com o valor 1. Caso seja NÃO, o valor será 0;
5.1- A quem possa me indagar: "tome cuidado com a REGEDIT, pois ali é do Windows e vc pode danificar, e, blá blá blá, etc...". Em 1998, quando estava sendo lançado na primeira emissora de rádio do Brasil, o simples software PLAYLIST DIGITAL, feito 100% em C e C++, eu vi que o autor desse pequeno "sisteminha de fundo de quintal", usava esse recurso para impedir pirataria do seu software;
5.2- O software hoje, é tão pequeno, que ocupa 24% do mercado nacional de automação de emissoras de rádio (AM, FM, WEB, etc) do Brasil;
5.3- O Playlist Digital ocupa pouca parcela do mercado da América Latina. O segundo colocado no ranking no Brasil, detém 12% do mercado nacional de rádios rsrsrsrsrs. O "sisteminha" tem o dobro do 2º colocado, sendo o PRIMEIRO COLOCADO EM SOFTWARE para GESTÃO e AUTOMAÇÃO de músicas, comerciais, vinhetas, etc, de rádios no nosso país;
5.4- Até hoje, o software usa o REGEDIT do Windows para evitar pirataria, além de outros novos recursos.
6- Com isso, toda vez que entrar no sistema é feita uma verificação na REGEDIT. Se o registro existir e for 0, não será mostrada a tela de NOTIFICAÇÕES, se for 1, será mostrada até o usuário decidir não vê-la novamente.
o Código é bem simples, veja:
6.1- A variável CROOTKEY contém previamente o local onde quero salvar/criar o registro dentro da REGEDIT;
6.2- a linha e suas seguintes IF REGTMP = NIL, é apenas por segurança, talvez, vc ache uma solução com um código mais enxuto;
7- Ao final da resposta SIM/NÃO, claro e não menos importante, mas, sendo obrigatório, senão a WVG bagunça tudo, é feito o oCrt:Destroy();
7.1- Se a gente não fizer assim, aí, teremos uma bagunça nas telas seguintes CONSOLE/WVG.
Se alguém achar uma forma mais simples de se apresentar numa única linha com quebra automática de página todo o texto da NOTIFICAÇÃO, para ser mais fácil a manutenção, vamos agradecer, talvez um tipo de MEMO num único @ SAY.
Pelo meu pouco conhecimento, não sei se existe um @ SAY ou algo similar em clipper/harbour que preencha toda a tela com um único comando/código.
Por enquanto é só pessoal.
Espero que seja útil aos que tem mais dificuldade como eu. Gracias!
Não é o q eu queria, mas, como não consegui desvendar o mistério, fiz de forma tradicional o formulário Notificações que será exibido, tanto em console/WVG, quanto em 100% GUI/HMG. Como fiz?
1- usei um WVGCRT pra criar uma tela com informações que seriam usadas somente nela;
2- usei @ say pra preencher individualmente todas as 24 linhas da tela;
3- tem um inkey(0) impedindo o fechamento automático da tela, sem que o usuário possa ler ou decidir fechar;
4- para a pergunta, usei o seguinte código:
Código: Selecionar todos
FUNCTION WVGSimNao( cText, cTitulo )
LOCAL lValue
hb_Default(@cTitulo, win_ansitoOem("Confirmação") )
lValue := wapi_MessageBox( wapi_GetActiveWindow(), cText, cTitulo, MB_YESNO + WIN_MB_ICONQUESTION + WIN_MB_DEFBUTTON1 ) == IDYES
RETURN lValueMuito simples:Já que uso um híbrido de console/wvg com gui/hmg ao mesmo tempo num(a) único(a) sistema(thread), por que então não usei a MSGYESNO() da HMG que dispensa fazer essa manualmente?
A MSGYESNO() da HMG é do tipo NÃO MODAL, ou seja, ela fica solta e se por ventura o usuário clicar noutro lugar da tela do windows, pode acontecer de não se ver a mensagem de confirmação automaticamente, tendo que ficar procurando-a num dos programas abertos;
Já a WVGSIMNAO() personalizada, é do tipo MODAL e enquanto a tela de NOTIFICAÇÕES não for fechada com o SIM ou NÃO ela ficará grudada nela.
5- Quando se sai da PERGUNTA, e, para poupar criação de uma nova tabela somente para salvar a resposta se SIM ou se NÃO, eu uso a regedit mesmo para salvar nas configurações do usuário. Com isso, se o usuário responder SIM, é criada um registro na REGEDIT (não importa qual o versão do win xp ou superior 32/64) por nome de NOTIFICACAO com o valor 1. Caso seja NÃO, o valor será 0;
5.1- A quem possa me indagar: "tome cuidado com a REGEDIT, pois ali é do Windows e vc pode danificar, e, blá blá blá, etc...". Em 1998, quando estava sendo lançado na primeira emissora de rádio do Brasil, o simples software PLAYLIST DIGITAL, feito 100% em C e C++, eu vi que o autor desse pequeno "sisteminha de fundo de quintal", usava esse recurso para impedir pirataria do seu software;
5.2- O software hoje, é tão pequeno, que ocupa 24% do mercado nacional de automação de emissoras de rádio (AM, FM, WEB, etc) do Brasil;
5.3- O Playlist Digital ocupa pouca parcela do mercado da América Latina. O segundo colocado no ranking no Brasil, detém 12% do mercado nacional de rádios rsrsrsrsrs. O "sisteminha" tem o dobro do 2º colocado, sendo o PRIMEIRO COLOCADO EM SOFTWARE para GESTÃO e AUTOMAÇÃO de músicas, comerciais, vinhetas, etc, de rádios no nosso país;
5.4- Até hoje, o software usa o REGEDIT do Windows para evitar pirataria, além de outros novos recursos.
6- Com isso, toda vez que entrar no sistema é feita uma verificação na REGEDIT. Se o registro existir e for 0, não será mostrada a tela de NOTIFICAÇÕES, se for 1, será mostrada até o usuário decidir não vê-la novamente.
o Código é bem simples, veja:
Código: Selecionar todos
if WVGSimNao( win_ansiToOem("Mostrar esta Notificação da próxima vez ?" )) = .t.
Regtmp:= win_regRead( cRootKey + "Notif")
if Regtmp = nil
Win_RegWrite ( cRootKey + "Notif", 1 , WIN_REG_DWORD )
else
Win_RegWrite ( cRootKey + "Notif", 1 , WIN_REG_DWORD )
endif
else
Regtmp:= win_regRead( cRootKey + "Notif")
if Regtmp = nil
Win_RegWrite ( cRootKey + "Notif", 0 , WIN_REG_DWORD )
else
Win_RegWrite ( cRootKey + "Notif", 0 , WIN_REG_DWORD )
endif
endif6.2- a linha e suas seguintes IF REGTMP = NIL, é apenas por segurança, talvez, vc ache uma solução com um código mais enxuto;
7- Ao final da resposta SIM/NÃO, claro e não menos importante, mas, sendo obrigatório, senão a WVG bagunça tudo, é feito o oCrt:Destroy();
7.1- Se a gente não fizer assim, aí, teremos uma bagunça nas telas seguintes CONSOLE/WVG.
Se alguém achar uma forma mais simples de se apresentar numa única linha com quebra automática de página todo o texto da NOTIFICAÇÃO, para ser mais fácil a manutenção, vamos agradecer, talvez um tipo de MEMO num único @ SAY.
Pelo meu pouco conhecimento, não sei se existe um @ SAY ou algo similar em clipper/harbour que preencha toda a tela com um único comando/código.
Por enquanto é só pessoal.
Espero que seja útil aos que tem mais dificuldade como eu. Gracias!
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 - 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!
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Formulário de Notificações Temporárias
Microevolution
Acho que tenho a solução ideal pra você.
Vai se preparando pra apagar tudo que tem de HMG/Minigui, que pelo que comentou é pouco.
Acho que tenho a solução ideal pra você.
Vai se preparando pra apagar tudo que tem de HMG/Minigui, que pelo que comentou é pouco.
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/
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/