Página 1 de 3
exemplo hwgui
Enviado: 17 Jan 2023 11:07
por JoséQuintas
Pra quem não viu ou não tem acesso, acrescentei em hwgui/test/mixed
É o jeito que vou usar.
Exemplo simples, tô pegando o jeito ainda.....
Mistura LIBs mas não mistura fontes de LIBs.
nota: EXE não assinado
exemplo hwgui
Enviado: 17 Jan 2023 11:21
por JoséQuintas
Pra facilitar quem só quer olhar:
menu.prg
Código: Selecionar todos
#include "inkey.ch"
#include "hbgtinfo.ch"
PROCEDURE Main
hb_ThreadStart( { || menu() } )
hb_ThreadWaitForAll()
RETURN
FUNCTION Menu()
LOCAL nOpc
SetMode(25,80)
CLS
DO WHILE .T.
@ 2, 5 PROMPT "Exit"
@ Row() + 1, 5 PROMPT "Show gt name"
@ Row() + 1, 5 PROMPT "this menu on new thread"
@ Row() + 1, 5 PROMPT "Empty dialog"
@ Row() + 1, 5 PROMPT "Empty dialog on new thread"
@ 1, 3 TO Row() + 1, 40
MENU TO nOpc
DO CASE
CASE nOpc == 1 .OR. LastKey() == K_ESC
EXIT
CASE nOpc == 2
Alert( hb_gtInfo( HB_GTI_VERSION ) )
CASE nOpc == 3
hb_ThreadStart( { || hb_gtReload( "WVG" ), menu() } )
CASE nOpc == 4
DlgEmpty()
CASE nOpc == 5
hb_ThreadStart( { || DlgEmpty() } )
ENDCASE
ENDDO
CLS
RETURN Nil
dlgempty.prg
Código: Selecionar todos
#include "hwgui.ch"
FUNCTION DlgEmpty()
LOCAL oDlg
INIT DIALOG oDlg TITLE "test" ;
AT 190, 10 SIZE 360, 300
ACTIVATE DIALOG oDlg
RETURN Nil
test.hbp
Código: Selecionar todos
skip={!allwin}
-otest
-w3
-es2
-gui
-mt
../../hwgui.hbc
gtwvg.hbc
menu.prg
dlgempty.prg
Nota:
requer alteração em gtwvg.hbc
remover esta linha
essa linha acrescenta esses arquivos ch em tudo que é fonte, é removê-la e colocar #include aonde precisar.
A compilação -w3 -es2 acaba acusando nomes repetidos referentes à API Windows, porque hwgui também tem API Windows.
Retirando esse acréscimo automático, se precisar em algum fonte gtwvg precisa colocar lá o #include, igual toda e qualquer lib.
exemplo hwgui
Enviado: 17 Jan 2023 12:05
por Itamar M. Lins Jr.
Olá!
No Linux via WINE
Saudações,
Itamar M. Lins Jr.
exemplo hwgui
Enviado: 17 Jan 2023 13:18
por JoséQuintas
Legal.
Faz o teste em Linux gerando hwgui com -DMT_EXPERIMENTAL -DHB_NO_GTGUI e removendo gtwvg.hbc
Vai entrar a GUI default do Linux no lugar da GTWVG.
Teoricamente vai ter o mesmo resultado.
Só não esqueça depois de gerar novamente hwgui sem esses parâmetros, pra evitar surpresas.
Ou teste, pra ver o que acontece, pode ser que hwgui funcione normalmente com a GUI linux.
Com -gui no HBP ou GUI=YES no HBC é usada a GUI default do Harbour, pra Windows ou Linux.
Até hoje não a diferença exata disso pra -gtgui.
Só sei que dá diferença, já que no Windows entra como default a GTWVT e não a GTGUI.
No Linux parece ser a GTK, mesma LIB da hwgui, mas não sei se afeta alguma coisa.
Pelo menos as GUIs defaults são multithread.
Basicamente podem ter mais de um ponto de entrada, um pra cada thread, o que parece que a GTGUI não tem.
E teoricamente, sem multithread, são equivalentes, vão ser o ponto de entrada.
exemplo hwgui
Enviado: 18 Jan 2023 08:44
por JoséQuintas
Minha idéia é rechear esse exemplo com uma espécie de tutorial.
Próximo exemplo útil, dialog com "gets".
No aplicativo tem muita tela que só usa isso.
Já serviria pra substituir algumas partes.
O que não dá pra fugir é um browse, porque praticamente toda tela usa um.
Em seguida, tela de cadastro com botões.
Isso já substitui muitas telas.
Meio que como conclusão, tela múltipla, usando abas.
Só depois desses, telas com opções de escolha, e outros.
No meu modo de ver, não me interessa ver recursos da hwgui, me interessa fazer o aplicativo em hwgui.
Por isso, exemplo de cada recurso acaba sendo meio que inútil, porque não leva a lugar nenhum, só deixa o perdido mais perdido ainda.
exemplo hwgui
Enviado: 18 Jan 2023 11:15
por Itamar M. Lins Jr.
Olá!
Por isso, exemplo de cada recurso acaba sendo meio que inútil, porque não leva a lugar nenhum, só deixa o perdido mais perdido ainda.
Já pensei assim. Lá em 1990 sei lá... Quando fiquei estudando isso...
Os exemplos são fáceis de entender.
Quem vai programar agora não vê dificuldade, mas quem usava a técnica do "DO WHILE", ... GET READ" tela com limite 80x24 já vê dificuldade.
A pessoa no caso fica perdida porque "JÁ SABE" o que quer, mas não sabe como fazer. Não compreende que tem que dar adeus a essa parte de telas. Hoje qualquer aplicativo tem uma pessoa das telas, outra para BD, outra para lógica do conjunto... E nós dinossauros fazíamos tudo isso sozinho.(continuo fazendo)
Saudações,
Itamar M. Lins Jr.
exemplo hwgui
Enviado: 18 Jan 2023 11:59
por carlaoonline
entrei no
https://chat.openai.com/chat
e solicitei isso:
Crie um código de programação em Harbour com HwGui que apresenta um combobox listando como opções os campos do arquivo cidades.dbf e após a escolha deve mostrar uma mensagem ao usuário informando o conteúdo desse campo no arquivo.
Me retornou isso:
Código: Selecionar todos
#include <hwgui.ch>
#include <dbf.ch>
PROCEDURE Main()
HwGui_Open()
HwGui_SetTitle("Selecione o campo")
LOCAL cComboBox := HwGui_AddComboBox()
LOCAL nFields := 0
LOCAL aFields := {}
LOCAL cFieldValue := ""
USE cidades
nFields := FCOUNT()
FOR i := 1 TO nFields
aFields := aAdd(aFields, FIELDNAME(i))
HwGui_AddComboBoxItem(cComboBox, FIELDNAME(i))
NEXT
HwGui_Show()
LOCAL cSelection := HwGui_GetComboBoxSelection(cComboBox)
SELECT cidades
cFieldValue := EVAL(cSelection)
HwGui_Info("Valor do campo '" + cSelection + "' é: " + cFieldValue)
HwGui_Close()
ENDPROC
Perguntei também:
Como criar um app em Harbour com HwGui para rodar em Android?
Saiu isso:
Para criar um aplicativo para Android usando Harbour e HwGui, é necessário seguir alguns passos:
Instale o Android SDK e configura-o no seu ambiente de desenvolvimento.
Instale o Harbour e configura-o para compilar para o sistema operacional Android.
Escreva o código do aplicativo usando Harbour e HwGui, seguindo as regras de programação para dispositivos móveis.
Compile o código fonte do aplicativo usando o Harbour e o Android SDK. Isso gera um arquivo executável para o sistema operacional Android.
Crie um arquivo "AndroidManifest.xml" para descrever as características do aplicativo, como as permissões necessárias e as configurações de tela.
Use o ferramenta "Android Asset Packaging Tool (AAPT)" para empacotar o arquivo executável e os arquivos de recursos do aplicativo.
Use o ferramenta "Android Debug Bridge (ADB)" para instalar o aplicativo no dispositivo Android ou emulador.
Teste e depure o aplicativo usando o Android SDK.
Este é um resumo geral dos passos necessários para criar um aplicativo para Android usando Harbour e HwGui. É importante ter conhecimento sobre programação em Harbour, HwGui e também sobre o desenvolvimento de aplicativos para Android. Além disso, é recomendado seguir a documentação e tutorial oficial das ferramentas utilizadas no processo.
E por último arrisquei isso:
Como seria um exemplo de código em Harbour com HwGui para Android que abriria o maps com a localização do Coliseu de Roma?
Saiu isso:
Código: Selecionar todos
#include <hwgui.ch>
#include <android.ch>
PROCEDURE Main()
HwGui_Open()
HwGui_SetTitle("Coliseu de Roma")
LOCAL cUri := "geo:41.8902,12.4922?q=41.8902,12.4922(Coliseu de Roma)"
Android_OpenUri(cUri)
HwGui_Close()
ENDPROC
com essa explicação:
Esse exemplo mostra como abrir o Maps do Android com a localização do Coliseu de Roma. Ele usa a função Android_OpenUri() para abrir a URI "geo:41.8902,12.4922?q=41.8902,12.4922(Coliseu de Roma)" que é uma URI do tipo geolocalização. Essa URI é composta pelas coordenadas geográficas do Coliseu de Roma (41.8902,12.4922) e também inclui a informação "Coliseu de Roma" como nome da localização. A função HwGui_Close() é usada para fechar a janela e finalizar o programa.
Esse código é apenas um exemplo básico e para que funcione é necessário seguir os passos para compilação e instalação do app que citei no meu comentário anterior. E também é importante que o dispositivo Android esteja conectado à internet para que possa abrir o Maps.
exemplo hwgui
Enviado: 18 Jan 2023 12:52
por Itamar M. Lins Jr.
Olá!
me interessa fazer o aplicativo em hwgui.
O que não falta é aplicativo em Hwgui para vc ver.
MAS SEMPRE SERÁ DIFERENTE DO SEU!
Quando vc fizer... e se vc conseguir MIGRAR seu ERP para Hwgui, SERÁ DIFERENTE de TODOS !
Vc tem suas particularidades. CADA UM TEM ! Isso depois de MUITO tempo de programação de escutar muito; "seu programa é uma merd..."(já escutei) e por ai vai.
Sua VISÃO do CONJUNTO dificulta LARGAR de mão tbrowse, etc... Pq em muitos casos é melhor o antigo,"quando usamos o BASICÃO" mas o antigo não faz nem a metade que o novo faz.
Saudações,
Itamar M. Lins Jr.
exemplo hwgui
Enviado: 18 Jan 2023 13:54
por JoséQuintas
Itamar M. Lins Jr. escreveu:Sua VISÃO do CONJUNTO dificulta LARGAR de mão tbrowse, etc... Pq em muitos casos é melhor o antigo,"quando usamos o BASICÃO" mas o antigo não faz nem a metade que o novo faz.
Pois é... você sempre volta na questão de console....
E sem nem saber direito o que se passa em Windows GUI.
exemplo hwgui
Enviado: 18 Jan 2023 14:07
por JoséQuintas
Legal o que a inteligência artificial fez.
Acho que o Itamar nem percebeu.
Não é o que hwgui faz, é o que deveria fazer kkkkk
exemplo hwgui
Enviado: 18 Jan 2023 14:19
por Itamar M. Lins Jr.
Olá!
E sem nem saber direito o que se passa em Windows GUI.
E daí ? Na sua opinião... Mesmo que fosse verdade e não é, não muda nada. WVG/HB34 está parada e ponto final. WVG com BUG(provavelmente)
Não é o que hwgui faz, é o que deveria fazer kkkkk
Deveria fazer o quê ? Melhor que a WVG é, melhor que qualquer uma, no estilo WVG.
Pq é melhor ? Pq faz uso dos controles do OS. Ah, mas a WVG, assim, assado...Vai voltar as mesmas conversas de anos atrás.
É um caso de estudo seu comportamento: Eu quero, mas eu não gosto, mas é deficiente...
Saudações,
Itamar M. Lins Jr.
exemplo hwgui
Enviado: 18 Jan 2023 14:26
por JoséQuintas
Itamar M. Lins Jr. escreveu:Deveria fazer o quê ? Melhor que a WVG é, melhor que qualquer uma, no estilo WVG.
Pq é melhor ? Pq faz uso dos controles do OS. Ah, mas a WVG, assim, assado...Vai voltar as mesmas conversas de anos atrás.
É um caso de estudo seu comportamento: Eu quero, mas eu não gosto, mas é deficiente...
É você que precisa de revisão, seu cérebro parou no tempo.
Tem suas idéias na sua cabeça e não sai delas.
Pelo jeito a WVG na sua cabeça é uma delas.
exemplo hwgui
Enviado: 18 Jan 2023 14:31
por Itamar M. Lins Jr.
Olá!
Não é o que hwgui faz, é o que deveria fazer kkkkk
O que a Hwgui deveria fazer ?
Eu sei de uma "cacetada" de coisa que deveria ter ou fazer. Eu sei pq uso ela há anos. Desde a versão 0.1
Sei das deficiências da Minigui, OOHG... Mas sei que se for colocar na balança, qualquer uma dessas, é melhor que qualquer GTXXX.
Saudações,
Itamar M. Lins Jr.
exemplo hwgui
Enviado: 18 Jan 2023 14:34
por JoséQuintas
Não viu o assunto do tópico não?
É justamente início de exemplos pra migrar pra HWGUI de forma simples.
Ou precisa desenhar?
Ou acha que porque quebrou a cabeça, todo mundo precisa quebrar também?
É o que parece.
Isso explica a falta de exemplos na hwgui.
Tem um lá legal, de ADO, postei aqui no fórum, e tá na hwgui com o nome do Itamar kkkkkkk
Deixa assim, que assim posso pentelhar sempre sobre isso kkkkkk
exemplo hwgui
Enviado: 18 Jan 2023 14:37
por JoséQuintas
Itamar M. Lins Jr. escreveu:O que a Hwgui deveria fazer ?
Eu sei de uma "cacetada" de coisa que deveria ter ou fazer. Eu sei pq uso ela há anos. Desde a versão 0.1
Sei das deficiências da Minigui, OOHG... Mas sei que se for colocar na balança, qualquer uma dessas, é melhor que qualquer GTXXX.
De novo GT?