Criando um gerador de aplicativos para Harbour
Moderador: Moderadores
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Ao criar canais, acaba ficando fora do fórum.
E pior que isso, ficar fora de controle
Uma coisa é programador internacional, e outra é programador nacional.
É capaz de perguntarem porque digita harbour<enter> e o harbour não aparece.
E pior que isso, ficar fora de controle
Uma coisa é programador internacional, e outra é programador nacional.
É capaz de perguntarem porque digita harbour<enter> e o harbour não aparece.
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/
-
mmarcondes
- Usuário Nível 2

- Mensagens: 81
- Registrado em: 02 Jul 2021 15:06
- Localização: witmarsum
Criando um gerador de aplicativos para Harbour
José, creio que você não está tendo uma visão mais ampla sobre programação e a forma como as pessoas estão interagindo nos dias de hoje. Eu também sou do tempo de ir na casa do amigo levando uma caixa de disquetes 5 1/4" (formatados) para copiar ou até levar código fonte, de buscar livros técnicos para conseguir ter acesso a um pouco mais de conhecimento, mesmo que fosse em inglês, mas hoje temos muitas possibilidades que expandem essa troca de conhecimento e fomenta ideias, infelizmente o Harbour ainda está de fora desse contexto.
Uma coisa que salta aos olhos hoje em dia, as principais linguagens de programação, usadas para criar software para celular, tablet, tv, relógio, carro, geladeira, web, desktop, etc, são todas grátis, não precisa pagar nada, o único comércio que existe é o de venda de cursos (conhecimento mais avançado), e compra quem quer, aliás, os preços são bem acessíveis, nós (creio que a maioria), nasceu e cresceu sabendo que tudo o que dizia respeito a software tinha que ser pirata, menos os sistemas que a gente fazia, eu desde que sai do Clipper, comecei a ver rapidamente que as coisas mudaram (claro, as bases são as mesmas), mas a forma é outra !
Uma coisa que salta aos olhos hoje em dia, as principais linguagens de programação, usadas para criar software para celular, tablet, tv, relógio, carro, geladeira, web, desktop, etc, são todas grátis, não precisa pagar nada, o único comércio que existe é o de venda de cursos (conhecimento mais avançado), e compra quem quer, aliás, os preços são bem acessíveis, nós (creio que a maioria), nasceu e cresceu sabendo que tudo o que dizia respeito a software tinha que ser pirata, menos os sistemas que a gente fazia, eu desde que sai do Clipper, comecei a ver rapidamente que as coisas mudaram (claro, as bases são as mesmas), mas a forma é outra !
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Voltando ao gerador:
basicamente é criar um modelo funcional, e a geração vai seguir esse modelo.
Mas melhor que isso, é apenas executar, sem nem precisar criar fontes.
basicamente é criar um modelo funcional, e a geração vai seguir esse modelo.
Mas melhor que isso, é apenas executar, sem nem precisar criar fontes.
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Tenho sim.mmarcondes escreveu:José, creio que você não está tendo uma visão mais ampla sobre programação e a forma como as pessoas estão interagindo nos dias de hoje
Minha previsão é de que demore UMA hora pra ter um gerador funcionando.
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Esquisito né... ficar pronto em uma hora afastou interessados.
O que tenho (tinha) pronto:
um gerador/executor, aonde configura campos, validações, relacionamentos pra pesquisa, etc.
é ir definindo e executando, já vendo em funcionamento.
Quando tudo funcionando do jeito que queria, é pedir pra gerar fontes.
Pode ser fontes em Harbour, ou fontes em VISUAL BASIC, o projeto inteiro pronto pra ser carregado na IDE do Visual Basic.
o tenho/tinha, é porque minhas LIBs foram sendo modificadas com o tempo, mas deixei o gerador pra trás.
Pelo GIT posso voltar a uma versão funcional, mas o ideal seria ir em frente.
O que tenho (tinha) pronto:
Código: Selecionar todos
Pasta de d:\fontes\util\GERADOR
16/10/2021 08:52 <DIR> .
16/10/2021 08:52 <DIR> ..
28/03/2021 13:59 14.486 GERA.CFG
28/03/2021 13:59 345 GERA.CH
28/03/2021 13:59 181 gera.hbp
04/09/2021 11:36 3.823 gera.prg
28/03/2021 13:59 2.498 ge_basconversao.prg
28/03/2021 13:59 5.785 ge_basdatabase.prg
28/03/2021 13:59 7.711 ge_basextenso.prg
28/03/2021 13:59 4.656 ge_basform.prg
28/03/2021 13:59 1.292 ge_basgeral.prg
28/03/2021 13:59 3.054 ge_basmenu.prg
28/03/2021 13:59 2.613 ge_baspesquisa.prg
28/03/2021 13:59 1.665 ge_basusuario.prg
28/03/2021 13:59 2.329 ge_baswinapi.prg
04/09/2021 11:36 6.130 GE_EXCA.PRG
28/03/2021 13:59 1.361 GE_EXIN.PRG
04/09/2021 11:36 10.874 ge_exme.prg
04/09/2021 11:36 6.876 GE_EXRE.PRG
11/08/2021 00:32 7.664 ge_frmabout.prg
28/03/2021 13:59 27.238 ge_frmcadastro.prg
28/03/2021 13:59 4.340 ge_frmdicas.prg
28/03/2021 13:59 5.619 ge_frmimporta.prg
28/03/2021 13:59 5.939 ge_frmlogin.prg
28/03/2021 13:59 6.178 ge_frmmenu.prg
28/03/2021 13:59 6.609 ge_frmpesquisa.prg
28/03/2021 13:59 3.865 ge_frmpopup.prg
28/03/2021 13:59 5.072 ge_frmRelatorio.prg
28/03/2021 13:59 240 GE_FUNC.PRG
04/09/2021 11:36 7.019 ge_gera.prg
04/09/2021 11:36 5.551 ge_hmg.prg
04/09/2021 11:14 9.284 ge_html.prg
28/03/2021 13:59 1.519 ge_prgAbre.prg
28/03/2021 13:59 7.491 ge_prgCadastro.prg
04/09/2021 11:14 1.916 ge_prgindex.prg
28/03/2021 13:59 1.370 ge_prgMenu.prg
28/03/2021 13:59 2.248 ge_prgpesquisa.prg
28/03/2021 13:59 1.167 ge_prgPrincipal.prg
28/03/2021 13:59 8.168 ge_prgrelatorio.prg
28/03/2021 13:59 3.113 ge_prgvalida.prg
04/09/2021 11:36 3.930 ge_setupedit.prg
28/03/2021 13:59 6.742 ge_setupexec.prg
04/09/2021 11:14 5.110 ge_setupini.prg
04/09/2021 11:14 4.291 ge_setupprint.prg
28/03/2021 13:59 3.845 ge_vbpprojeto.prg
04/09/2021 11:14 1.064 ze_dbf.prg
04/09/2021 11:36 6.505 ze_manut.prg
04/09/2021 11:36 10.686 ze_relat.prg
46 arquivo(s) 239.462 bytes
é ir definindo e executando, já vendo em funcionamento.
Quando tudo funcionando do jeito que queria, é pedir pra gerar fontes.
Pode ser fontes em Harbour, ou fontes em VISUAL BASIC, o projeto inteiro pronto pra ser carregado na IDE do Visual Basic.
o tenho/tinha, é porque minhas LIBs foram sendo modificadas com o tempo, mas deixei o gerador pra trás.
Pelo GIT posso voltar a uma versão funcional, mas o ideal seria ir em frente.
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Tem também um em HWGUI, mas não sei usar hwgui direito.
É copiar os DBFs pra pasta e executar.
Já criou automático o menu pra cada DBF, e cada opção já é a tela para o DBF selecionado.
Esse está executando direto.
Não gera fonte, e não tem nenhum tipo de dicionário, apenas pega a estrutura e já executa, criando as telas.
Naquele em Visual Basic eu usava o TabbedControl (ou algo assim) pra dividir a tela em várias abas.
Em HWGUI não pesquisei nada em como fazer.
É só esse fonte mesmo.
Código: Selecionar todos
d:\fontes\testes>cd hwguicadastro
d:\fontes\testes\hwguicadastro>dir
O volume na unidade D é TRABALHO
O Número de Série do Volume é C4CC-0221
Pasta de d:\fontes\testes\hwguicadastro
15/10/2021 18:00 <DIR> .
15/10/2021 18:00 <DIR> ..
28/03/2021 13:59 1.548 exe.manifest
28/03/2021 13:59 16.958 icodefault.ico
28/03/2021 13:59 16.958 icoDoor.ico
28/03/2021 13:59 16.958 icoEdit.ico
28/03/2021 13:59 16.958 icoFirst.ico
28/03/2021 13:59 16.958 icolast.ico
28/03/2021 13:59 16.958 icoLeft.ico
28/03/2021 13:59 16.958 icoPlus.ico
28/03/2021 13:59 12.862 icoRight.ico
28/03/2021 13:59 16.958 icoSearch.ico
28/03/2021 13:59 16.958 icoTrash.ico
17/10/2019 13:57 4.343 jpcadas.DBF
19/02/2014 13:36 195 jpcomiss.dbf
04/04/2018 00:42 675 jpestoq.DBF
17/10/2019 13:57 1.219 jpimpos.DBF
17/10/2019 13:57 1.987 jpnota.DBF
17/10/2019 13:57 3.771 JPPEDI.DBF
01/10/2021 13:36 467.985 jptabel.DBF
11/07/2014 12:59 579 jpveicul.dbf
19/08/2014 15:47 710 jpvended.dbf
27/08/2021 12:18 195 test.dbf
15/10/2021 17:56 614.400 test.exe
02/08/2021 20:15 69 test.hbp
15/10/2021 17:56 5.543 test.prg
27/08/2021 12:54 513 test.rc
25 arquivo(s) 1.269.216 bytes
Já criou automático o menu pra cada DBF, e cada opção já é a tela para o DBF selecionado.
Esse está executando direto.
Não gera fonte, e não tem nenhum tipo de dicionário, apenas pega a estrutura e já executa, criando as telas.
Naquele em Visual Basic eu usava o TabbedControl (ou algo assim) pra dividir a tela em várias abas.
Em HWGUI não pesquisei nada em como fazer.
Código: Selecionar todos
15/10/2021 17:56 5.543 test.prg
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
O fonte do menu:
O fonte completo, com TUDO, tem exatamente 214 linhas.
Se roda sem precisar fonte, gerar fonte pra que?
Código: Selecionar todos
FUNCTION Main()
LOCAL oFrmMain
LOCAL aFileList, aFile
SET EXCLUSIVE OFF
aFileList := Directory( "*.dbf" )
INIT WINDOW oFrmMain TITLE "Example" SIZE 800,500 ;
MENUPOS 3 BACKCOLOR 16744703
MENU OF oFrmMain
MENU TITLE "Any"
FOR EACH aFile IN aFileList
AddOption( aFile[ F_NAME ] )
NEXT
MENUITEM "&Exit" ACTION hwg_EndWindow()
ENDMENU
ENDMENU
ACTIVATE WINDOW oFrmMain
RETURN Nil
FUNCTION AddOption( cFile )
MENUITEM cFile ACTION Execute( cFile )
RETURN Nil
Se roda sem precisar fonte, gerar fonte pra que?
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Sobre o primeiro gerador....
Um post de 3 ANOS ATRÁS, mostrando em funcionando.
https://pctoledo.org/forum/viewto ... it=gerador
Interessante né.... como essa estória de gerador vai e volta...
Um post de 3 ANOS ATRÁS, mostrando em funcionando.
https://pctoledo.org/forum/viewto ... it=gerador
Interessante né.... como essa estória de gerador vai e volta...
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/
-
ivanil
- Usuário Nível 3

- Mensagens: 166
- Registrado em: 11 Set 2004 15:13
- Localização: Florianópolis/SC
Criando um gerador de aplicativos para Harbour
O designer postado em IDE aqui mesmo no fórum, além de outras coisas já faz isso também há pelo menos 2 anos;
Foi montado um cabeçalho que permite o mesmo código trabalhar com os bancos de dados: DBF, Firebird, Mysql, Sqlite, Postgree e principalmente o ADO que abre o universo para qualquer outro BD;
Crie a conexão, clique no wizard, escolha os campos, ajuste os Labels, redirecione os controles (cada qual cai dentro de um padrão que você mesmo padroniza Logic=checkbox,date=datepicker,etc); permite repaginação; (TAB); se não detectar a chave primaria automaticamente você escolhe, informe o campo de pesquisa, escolha os campos para relatório e finalize e pronto, um esqueleto completo de formulário inclusive o CRUD com seu código fonte para uso ou retoque
O formulário gerado pode ser aberto pelas outras IDE, mas realmente não vejo motivo para fazer isso;
Ao clicar nos eventos vazios, automaticamente cria uma função static no fonte do formulário padronizada com nome do formulário, controle e evento, ou se não estiver vazio, se posiciona na função, não chega a ser a perfeição que vemos no DELPHI/VISUAL BASIC e outras IDEs Comerciais, mas me atende muito bem;
Ele permite gerar 2 tipos de formulário, HTML e Excel; como trabalho com consultoria, meus clientes precisam mesmo é do Excel para trabalhar a informação, o HTML foi mais para atender um publico que não tem o office;
é de uso livre, mantenho sempre atualizada com a ultima versão da Minigui extend;
Atualmente tem as traduções: USA/ITALIANO/ESPANHOL;
Fiz vários vídeos que estão no youtube que mostram algumas das funcionalidades,
Alguns colegas preferem fazer não mão, eu desde o clipper jã deixava tudo meio no automático, quanto mais pratico e rápido melhor, afinal de contas é só tela;
https://github.com/ivanilmarcelino/designer
Foi montado um cabeçalho que permite o mesmo código trabalhar com os bancos de dados: DBF, Firebird, Mysql, Sqlite, Postgree e principalmente o ADO que abre o universo para qualquer outro BD;
Crie a conexão, clique no wizard, escolha os campos, ajuste os Labels, redirecione os controles (cada qual cai dentro de um padrão que você mesmo padroniza Logic=checkbox,date=datepicker,etc); permite repaginação; (TAB); se não detectar a chave primaria automaticamente você escolhe, informe o campo de pesquisa, escolha os campos para relatório e finalize e pronto, um esqueleto completo de formulário inclusive o CRUD com seu código fonte para uso ou retoque
O formulário gerado pode ser aberto pelas outras IDE, mas realmente não vejo motivo para fazer isso;
Ao clicar nos eventos vazios, automaticamente cria uma função static no fonte do formulário padronizada com nome do formulário, controle e evento, ou se não estiver vazio, se posiciona na função, não chega a ser a perfeição que vemos no DELPHI/VISUAL BASIC e outras IDEs Comerciais, mas me atende muito bem;
Ele permite gerar 2 tipos de formulário, HTML e Excel; como trabalho com consultoria, meus clientes precisam mesmo é do Excel para trabalhar a informação, o HTML foi mais para atender um publico que não tem o office;
é de uso livre, mantenho sempre atualizada com a ultima versão da Minigui extend;
Atualmente tem as traduções: USA/ITALIANO/ESPANHOL;
Fiz vários vídeos que estão no youtube que mostram algumas das funcionalidades,
Alguns colegas preferem fazer não mão, eu desde o clipper jã deixava tudo meio no automático, quanto mais pratico e rápido melhor, afinal de contas é só tela;
https://github.com/ivanilmarcelino/designer
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Fui pegar uma pasta com DBFs pra teste, e tem quase 300 arquivos.
Acabei precisando dividir o menu em vários.
Também alterei pra dialog nomodal.
O fonte acabou aumentando de 214 linhas pra 220 linhas.
O novo menu
NÃO É GERADOR.
Está executando direto mesmo.
Acabei precisando dividir o menu em vários.
Também alterei pra dialog nomodal.
O fonte acabou aumentando de 214 linhas pra 220 linhas.
O novo menu
Código: Selecionar todos
#include "hbclass.ch"
#include "hwgui.ch"
#include "hwg_extctrl.ch"
#include "dbstruct.ch"
#include "directry.ch"
FUNCTION Main()
LOCAL oFrmMain
LOCAL aFileList, aFile
SET EXCLUSIVE OFF
aFileList := Directory( "*.dbf" )
INIT WINDOW oFrmMain TITLE "Example" SIZE 800,500 ;
MENUPOS 3 BACKCOLOR 16744703
MENU OF oFrmMain
FOR EACH aFile IN aFileList
IF Mod( aFile:__EnumIndex, 30 ) == 1
MENU TITLE "Opt" + Ltrim( Str( Int( aFile:__EnumIndex / 30 ) + 1, 2 ) )
ENDIF
AddOption( aFile[ F_NAME ] )
IF Mod( aFile:__EnumIndex, 30 ) == 0
MENUITEM "&Exit" ACTION hwg_EndWindow()
ENDMENU
ENDIF
NEXT
MENUITEM "&Exit" ACTION hwg_EndWindow()
ENDMENU
ENDMENU
ACTIVATE WINDOW oFrmMain
RETURN Nil
Está executando direto mesmo.
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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Fonte simples, tipo adicionar quais serão os buttons.
ou escolher qual imagem será usada
O fonte com 220 linhas inclui tudo isso acima.
Como já postei praticamente metade, são só por volta de mais 100 linhas de fonte, além das postadas aqui.
Como eu disse antes: porque gerar fonte se dá pra executar direto?
São 220 linhas de fonte pra executar tudo sem gerar fonte.
Código: Selecionar todos
METHOD CreateButtons() CLASS FrmClass
LOCAL nRow, nCol, acOptions := {}, cCaption, bCode
//PREPARE FONT oFont NAME "Times New Roman" WIDTH 0 HEIGHT 20 WEIGHT 400
IF "C" $ ::cOptions
AAdd( acOptions, "Consulta" )
ENDIF
IF "I" $ ::cOptions
AAdd( acOptions, "Inclui" )
ENDIF
IF "A" $ ::cOptions
AAdd( acOptions, "Altera" )
ENDIF
IF "E" $ ::cOptions
AAdd( acOptions, "Exclui" )
ENDIF
IF "P" $ ::cOptions
AAdd( acOptions, "Primeiro" )
ENDIF
IF "U" $ ::cOptions
AAdd( acOptions, "Último" )
ENDIF
IF "+" $ ::cOptions
AAdd( acOptions, "Seguinte" )
ENDIF
IF "-" $ ::cOptions
AAdd( acOptions, "Anterior" )
ENDIF
AAdd( acOptions, "Sair" )
Código: Selecionar todos
STATIC FUNCTION IconFromCaption( cCaption )
LOCAL cIcon
DO CASE
CASE cCaption == "Inclui"; cIcon := "icoPlus"
CASE cCaption == "Altera"; cIcon := "icoEdit"
CASE cCaption == "Exclui"; cIcon := "icoTrash"
CASE cCaption == "Primeiro"; cIcon := "icoFirst"
CASE cCaption == "Seguinte"; cIcon := "icoRight"
CASE cCaption == "Anterior"; cIcon := "icoLeft"
CASE cCaption == "Último"; cIcon := "icoLast"
CASE cCaption == "Consulta"; cIcon := "icoSearch"
CASE cCaption == "Sair"; cIcon := "icoDoor"
OTHERWISE
cIcon := "icoDefault"
ENDCASE
RETURN cIcon
Como já postei praticamente metade, são só por volta de mais 100 linhas de fonte, além das postadas aqui.
Como eu disse antes: porque gerar fonte se dá pra executar direto?
São 220 linhas de fonte pra executar tudo sem gerar 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/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criando um gerador de aplicativos para Harbour
Código: Selecionar todos
METHOD OptionCreate() CLASS frmGuiClass
LOCAL oElement, cLetter
IF "I" $ ::cOptions
AAdd( ::oButtons, { Asc( "I" ), "<I>Inclui" } )
AAdd( ::acHotKeys, { K_INS, Asc( "I" ) } ) // Traduz INS para Inclui
AAdd( ::acHotKeys, { Asc( "0" ), Asc( "I" ) } )
ENDIF
IF "A" $ ::cOptions
AAdd( ::oButtons, { Asc( "A" ), "<A>Altera" } )
ENDIF
IF "E" $ ::cOptions
AAdd( ::oButtons, { Asc( "E" ), "<E>Exclui" } )
AAdd( ::acHotKeys, { K_DEL, Asc( "E" ) } ) // Traduz DEL para Exclui
AAdd( ::acHotKeys, { Asc( "." ), Asc( "E" ) } )
AAdd( ::acHotKeys, { Asc( "," ), Asc( "E" ) } )
ENDIF
IF ::lNavigate
AAdd( ::oButtons, { Asc( "C" ), "<C>Consulta" } )
AAdd( ::oButtons, { Asc( "P" ), "<P>Primeiro" } )
AAdd( ::oButtons, { Asc( "-" ), "<->Anterior" } )
AAdd( ::oButtons, { Asc( "+" ), "<+>Seguinte" } )
AAdd( ::oButtons, { Asc( "U" ), "<U>Último" } )
AAdd( ::acHotKeys, { K_HOME, Asc( "P" ) } )
AAdd( ::acHotKeys, { Asc( "7" ), Asc( "P" ) } )
AAdd( ::acHotKeys, { K_END, Asc( "U" ) } )
AAdd( ::acHotKeys, { Asc( "1" ), Asc( "U" ) } )
AAdd( ::acHotKeys, { K_PGUP, Asc( "-" ) } )
AAdd( ::acHotKeys, { Asc( "9" ), Asc( "-" ) } )
AAdd( ::acHotKeys, { K_PGDN, Asc( "+" ) } )
AAdd( ::acHotKeys, { Asc( "3" ), Asc( "+" ) } )
ENDIF
Código: Selecionar todos
FUNCTION IconFromCaption( cCaption, cTooltip )
LOCAL cSource := ""
hb_Default( @cTooltip, "" )
DO CASE
CASE cCaption == "<ESC>Sair" ; cSource := "icoDoor" ; cTooltip := "ESC Encerra a utilização"
CASE cCaption == "<->Anterior" ; cSource := "icoLeft" ; cTooltip := "- PGUP Move ao registro anterior"
CASE cCaption == "<+>Seguinte" ; cSource := "icoRight" ; cTooltip := "+ PGDN Move ao registro seguinte"
CASE cCaption == "<A>Altera" ; cSource := "icoEdit" ; cTooltip := "A Alterar existente"
CASE cCaption == "<B>Baixa" ; cSource := "icoMoney" ; cTooltip := "B Baixa documento" // financeiro
CASE cCaption == "<B>Base" ; cSource := "icoGas" ; cTooltip := "B Base"
CASE cCaption == "<B>Recibos" ; cSource := "icoInvoice" ; cToolTip := "B Recibos" // Haroldo Recibos
CASE cCaption == "<B>Boleto" ; cSource := "icoBarCode" ; cTooltip := "B Boleto" // Haroldo Recibos
GTWVG ou HWGUI?
Nem dá pra saber direito quem é quem.
Neste post é GTWVG.
Quando eu digo que é tudo a mesma coisa ninguém acredita kkkkk
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/