Clipper On Line • Ver Tópico - Iniciando com HWGUI

Iniciando com HWGUI

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

Iniciando com HWGUI

Mensagempor JoséQuintas » 22 Set 2020 10:30

Posso tentar.
Tem horas que acho mais fácil mexer em fonte de LIB gráfica do que usá-la.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes

Iniciando com HWGUI

Mensagempor JoséQuintas » 22 Set 2020 11:23

Não deu.
Tá complicado mesmo.

Achei até que era hwg_GetSkip(), por estar muito mais simplificado, e na 2.17 testar se existem os eventos de GetFocus e LostFocus do próximo controle, mas não é somente aí.

Diferente da Getsys, isso não envolve somente alterar a ordem do GET.
Tem a questão do foco, que já pode ter ido pro controle seguinte, e precisa anulação, senão trava tudo.

No VB5 acontecia muito isso.

Tipo... só sai do campo se for válido, tem lá o evento lost_focus que não permite sair.
Mas o usuário já clicou no próximo campo... que tem o get_Focus que obriga a entrar.
se os dois estão obrigando a ficar nele.... aí é onde trava tudo.

Seria como dois programas: um cuidando do visual, e outro da parte interna. O programa da parte interna precisa primeiro avisar o da parte visual sobre o que fazer primeiro, ou vice-versa.

De repente, essa validação precisa ser no próximo controle que recebeu foco, e isso pode envolver mais controles do que o HEDIT.
E justamente quem mexeu nos fontes depois, deve ter visto um pedaço de fonte que não tinha nada a ver com o controle e considerou que era lixo.
Isso explicaria porque no último VALID não respeita, porque o próximo controle não é HEDIT.
Testem se acontece também com o primeiro, quando usa SHIFT-TAB. Se acontecer.... é isso.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes

Iniciando com HWGUI

Mensagempor Fernando queiroz » 22 Set 2020 11:37

JoséQuintas escreveu:Testem se acontece também com o primeiro, quando usa SHIFT-TAB. Se acontecer.... é isso.

o SHIFT+TAB no primeiro campo da tela funcionou normal comigo, mas eu tenho o campo fantasma no final, quando eu dou SHIFT+TAB ele pula para o campo fantasma.
HARBOUR 3.2, HWGUI 2.22 B4, SEFAZCLASS, DBFCDX, PDFClass, LETODBF
Fernando queiroz
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 440
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 6 vezes
Mens.Curtidas: 16 vezes

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 14:40

Ola!
ela exige que vc fique olhando os fontes para entender como funciona

Tem exemplos suficientes para aprender. A Hwgui é SIMPLES. Pegue qualquer controle da Minigui e compare com a Hwgui.
Simples de mais aprender a usar Hwgui segue o @ SAY e @ GET do CLIPPER. O problema é o pessoal que vê isso e dispersa seus minguados usuários.
Foi a PIONEIRA no DEBUG gráfico, Foi a PIONEIRA em XML(formulários) igual ao DELPHI, a melhor IDE, melhor gerador de relatórios... Tudo depois bagunçado pelos próprios usuários e intermediários(atravessadores) dela. Muitos querem ela só para si. A ponto dos usuários brasileiros dela ficarem cada um com o desenvolvedor "brasileiro" X... E o vilão passar a ser o próprio criador! Mas o bom do código livre é isso, já que é sem remuneração não tem como matar o projeto.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 4626
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 161 vezes
Mens.Curtidas: 254 vezes

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 15:07

Ola!
A mesma coisa fizeram com SQLMIX, ADO etc...
AGORA!!! depois que muita gente já caiu fora...Agora!!!! que muita gente já sabe e tem muita coisa na internet com o Harbour usando SQL... que o pessoal não tem nem mais o que DISCUTIR do SQLRDD essa GABIARRA para usar SQL SIMULANDO DBF. Tão vendo o estrago que fizeram.... Ao invés de ensinarem a usar ADO ou outra coisa... Inventaram esse produto para "emburrecer" os programadores do Harbour e ficarem presos nessa solução, que se for usar da forma adequada termina não precisando do próprio SQLRDD.
Todo mundo querendo se livrar do DO WHILE, REPLACE etc... e usa-se isso tudo. Vem e dizem: Mas é opcional, nisso já não precisamos mais do SQLRDD, porquê se vamos usar da forma tradicional, basta o ADO.
Já tem um tempo eu estou batendo na tecla do HTML + CSS + Javascript e o Harbour como BACKEND... Agora tem ModHarbour etc... Mas é TUDO HTML!
Caiu para internet, não tem para onde correr é HTML, e vem o pessoal querendo provar por A + B que a linguagem TAL faz maravilhas.... Não faz! Vai usar internet, quer fazer seus usuários disponibilizarem seus BANCOS de DADOS ? Só HTML filho... Mais as coisas que já tem. Porquê essas ferramentas estão ESCONDENDO o HTML com CSS, nada mais.
A maioria dos softwares comerciais diz “desenvolvido ativamente” enquanto for “lucrativo”.

Estava lendo um artigo exatamente sobre isso. O pessoal do software PAGO vai MATAR o produto quando ele parar de dar LUCRO ai a pessoa que ficou dias, meses para aprender e desenvolver algo usável fica a ver navios.

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 4626
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 161 vezes
Mens.Curtidas: 254 vezes

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 15:28

Ola!
Achei até que era hwg_GetSkip(), por estar muito mais simplificado, e na 2.17

Colocaram, tanta coisa em alguns controles(hBrowse.prg) por exemplo, que o Alexander Kresin, teve que VOLTAR! para 2.16 pq ele disse que estava impossível de achar os defeitos... É só olhar os fontes da 2.17 e 2.18 vai ver que ele voltou para traz para poder melhorar a Hwgui... Mas como sempre o pessoal só enxerga aquilo que convém. Queriam que ele consertasse a Hwgui, com os códigos exclusivos para BCC etc e ninguém foi lá dizer para ele onde estavam os problemas.
Queriam apenas a solução!

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 4626
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 161 vezes
Mens.Curtidas: 254 vezes

Iniciando com HWGUI

Mensagempor JoséQuintas » 22 Set 2020 17:19

O CLANG seria pra isso, pra padronizar o C, independente de compilador C.
Mas isso exige uma versào mínima de compilador C, porque antigamente isso não existia.
Nem sei se com a nova padronização que está pra sair, se todo fonte atual não pode ter problema.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes

Iniciando com HWGUI

Mensagempor Itamar M. Lins Jr. » 22 Set 2020 18:40

Ola!
Isso explicaria porque no último VALID não respeita, porque o próximo controle não é HEDIT.

Anomalia por conta do VALID se o VALID tem .not. empty(), já precisa de tratamento. Com a função:

If hwg_Getkeystate(VK_RETURN) < 0 //Se teclou enter no get
Else
    Return .t.
EndIf

Eu trabalho da seguinte forma:
Tenho as funções PegaVar, UpGet, CriaVar. Normalmente trabalho com browse e uma tab com os gets ao lado. Vou ver se faço um exemplo depois.
Quando o usuário navega pelo browse eu vou mudando no TAB os GETS conforme a linha do browse.
Function CriaVar
cNome := space(len(cliente->nome))
...
Function UpGet //Atualizar o get na tela, faz um refresh
oNome : Refresh()
...
Function PegaVar
cNome : cliente->nome
...


Com isso ai tenho telas com gets enormes atualiza tudo super rápido. DBF com mais de 100 mil itens no estoque...

Saudações,
Itamar M. Lins Jr.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 4626
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 161 vezes
Mens.Curtidas: 254 vezes

Iniciando com HWGUI

Mensagempor asimoes » 22 Set 2020 18:58

Solução é validar na rotina de gravação (click do botão) antes de incluir/alterar
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4738
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 321 vezes
Mens.Curtidas: 226 vezes

Iniciando com HWGUI

Mensagempor JoséQuintas » 23 Set 2020 10:47

asimoes escreveu:Solução é validar na rotina de gravação (click do botão) antes de incluir/alterar


Fica feio, mas... outra, no estilo console, seria acrescentar um último campo pra confirmar S/N.

E por falar nisso...
Isso me deu outra idéia, ou possibilidade sobre a correção.
Se a HWGUI usa algo que simula a getsys, talvez ela tenha o array e baste acrescentar o elemento fantasma nesse array, pra fingir que tem um "get" a mais. Lógico, e confirmar alterações adicionais.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes

Iniciando com HWGUI

Mensagempor JoséQuintas » 23 Set 2020 13:02

Eu ainda estou relutando em usar GUI....
Tô achando muito trabalho pra pouca coisa.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes

Iniciando com HWGUI

Mensagempor asimoes » 23 Set 2020 15:58

JoséQuintas escreveu:Eu ainda estou relutando em usar GUI....
Tô achando muito trabalho pra pouca coisa.


Vai desistir fácil?

Eu fui migrando aos poucos antes era GTWVG depois GTWVT, depois fui migrando as rotinas para HWGUI (modal) no final a rotina principal (MAIN) virou estilo HWGUI e as rotinas não migradas ficaram como GT, isso tudo levou 1 ano, agora qq rotina nova 100% hwgui, eu uso muito a designer que ajuda muito na construção das telas, mas se fosse pra ser na unha talvez não estaria pronto. A fase 2 foi migrar DBF para SQL, tempo total migração 1 ano e meio. Agora só pego o cheque no final do mês no cliente, o objetivo foi alcançado
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4738
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 321 vezes
Mens.Curtidas: 226 vezes

Iniciando com HWGUI

Mensagempor JoséQuintas » 23 Set 2020 17:42

asimoes escreveu:Vai desistir fácil?


Não, é que eu fico querendo mexer nos fontes da LIB.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes

Iniciando com HWGUI

Mensagempor asimoes » 23 Set 2020 17:47

JoséQuintas escreveu:Não, é que eu fico querendo mexer nos fontes da LIB.

Eu tinha esse receio, mas ninguém está proibido de mexer na lib, vai acabar descobrindo bugs
Essa parte eu comecei a fazer depois que consegui migrar tudo, tipo o que eu andei postando aqui, claro que vai ficar uma lib personalizada para você usar ou melhor um fork seu.
Se tem algo interessante é só fazer a sugestão pro Alexander
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar de usuário

asimoes
Colaborador

Colaborador
 
Mensagens: 4738
Data de registro: 26 Abr 2007 16:48
Cidade/Estado: RIO DE JANEIRO-RJ
Curtiu: 321 vezes
Mens.Curtidas: 226 vezes

Iniciando com HWGUI

Mensagempor JoséQuintas » 23 Set 2020 18:25

A propósito...

Aqui tem todo histórico da HWGUI, mas só até maio.

https://github.com/mlacecilia/hwgui

Última alteração: ticket do Itamar
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 14703
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 867 vezes

Anterior Próximo



Retornar para HwGui

Quem está online

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