Página 5 de 6
Iniciando com HWGUI
Enviado: 22 Set 2020 10:30
por JoséQuintas
Posso tentar.
Tem horas que acho mais fácil mexer em fonte de LIB gráfica do que usá-la.
Iniciando com HWGUI
Enviado: 22 Set 2020 11:23
por JoséQuintas
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 11:37
por Fernando queiroz
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 14:40
por Itamar M. Lins Jr.
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 15:07
por Itamar M. Lins Jr.
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 15:28
por Itamar M. Lins Jr.
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 17:19
por JoséQuintas
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 18:40
por Itamar M. Lins Jr.
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:
Código: Selecionar todos
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.
Código: Selecionar todos
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.
Iniciando com HWGUI
Enviado: 22 Set 2020 18:58
por asimoes
Solução é validar na rotina de gravação (click do botão) antes de incluir/alterar
Iniciando com HWGUI
Enviado: 23 Set 2020 10:47
por JoséQuintas
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.
Iniciando com HWGUI
Enviado: 23 Set 2020 13:02
por JoséQuintas
Eu ainda estou relutando em usar GUI....
Tô achando muito trabalho pra pouca coisa.
Iniciando com HWGUI
Enviado: 23 Set 2020 15:58
por asimoes
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
Iniciando com HWGUI
Enviado: 23 Set 2020 17:42
por JoséQuintas
asimoes escreveu:Vai desistir fácil?
Não, é que eu fico querendo mexer nos fontes da LIB.
Iniciando com HWGUI
Enviado: 23 Set 2020 17:47
por asimoes
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
Iniciando com HWGUI
Enviado: 23 Set 2020 18:25
por JoséQuintas
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