Criação de telas
Moderador: Moderadores
- sygecom
- Administrador

- Mensagens: 7131
- Registrado em: 21 Jul 2006 10:12
- Localização: Alvorada-RS
- Contato:
Criação de telas
Pessoal,
Alguém tem alguma ideia de classe para cadastro que gere tela em Hwgui a partir de um DBF/Aaray/sgbd.
A ideia é poder facilitar a criação de telas de cadastros, passando apenas array por exemplo.
Pelo que entendi o Protheus da Totvs faz isso limitando até 4 colunas de componentes por aba.
Se alguém tiver alguma ideia pra colaborar nesse início agradeço
Alguém tem alguma ideia de classe para cadastro que gere tela em Hwgui a partir de um DBF/Aaray/sgbd.
A ideia é poder facilitar a criação de telas de cadastros, passando apenas array por exemplo.
Pelo que entendi o Protheus da Totvs faz isso limitando até 4 colunas de componentes por aba.
Se alguém tiver alguma ideia pra colaborar nesse início agradeço
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
xHarbour.org + Hwgui + PostgreSql
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Criação de telas
Olá!
O segredo é usar fonte COSOLAS, COURIER, COURIER NEW... Ele usa uma dessas.
E a font é fixa no protheus.
Tem IDE de terceiros no protheus que podemos baixar... não lembro mais a url.
Saudações,
Itamar M. Lins Jr.
Faz mas fica horrível.(minha opinião)Protheus da Totvs
O segredo é usar fonte COSOLAS, COURIER, COURIER NEW... Ele usa uma dessas.
E a font é fixa no protheus.
Tem IDE de terceiros no protheus que podemos baixar... não lembro mais a url.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Criação de telas
Olá!
@ x,y say .... size larg,comp ...
@ x,y get .... size larg,comp ...
PROTHEUS usa uma COPIA ANTIGA da FiveWin quase a mesma coisa da Hwgui.
Vão dizer que não, que é isso, é aquilo... Mas é FIVEWIN... Tenho até minhas dúvidas se não é uma cópia do Harbour com Fivewin.
O projeto aceita a mesma coisa do Harbour arquivo .HRB só que com outra extensão.
Vai ver foram olhando e fazendo diferente para dizer que não foi uma cópia.
Não importa o tamanho da tela(resolução 30000X20000). A FONTE será sempre a MESMA. Quer dizer vai ficando cada vez menor se a resolução foi muito grande.
Geralmente 1024 mais que isso a font já fica muito pequena dependendo do propósito.
Mas é um programa muito bem feito e monstruoso de tamanho com milhões de possibilidades para implantar em qualquer comércio.
Por conta de podermos programar e interferir adicionar mais módulos...etc... muito bom mesmo.
Saudações,
Itamar M. Lins Jr.
Qualquer fonte usando LINHA x COLUNAS com font (Courier, Courier New)dê um fonte exemplo e te dou o gerador com fontes baseado nele.
@ x,y say .... size larg,comp ...
@ x,y get .... size larg,comp ...
PROTHEUS usa uma COPIA ANTIGA da FiveWin quase a mesma coisa da Hwgui.
Vão dizer que não, que é isso, é aquilo... Mas é FIVEWIN... Tenho até minhas dúvidas se não é uma cópia do Harbour com Fivewin.
O projeto aceita a mesma coisa do Harbour arquivo .HRB só que com outra extensão.
Vai ver foram olhando e fazendo diferente para dizer que não foi uma cópia.
Não importa o tamanho da tela(resolução 30000X20000). A FONTE será sempre a MESMA. Quer dizer vai ficando cada vez menor se a resolução foi muito grande.
Geralmente 1024 mais que isso a font já fica muito pequena dependendo do propósito.
Mas é um programa muito bem feito e monstruoso de tamanho com milhões de possibilidades para implantar em qualquer comércio.
Por conta de podermos programar e interferir adicionar mais módulos...etc... muito bom mesmo.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Criação de telas
Olá!
No caso de existir um valid no ULTIMO GET, colocar mais um get com size 0,0 DISABLE ou não.
Eu faço assim: "@ x,y get oPhatom VAR cPhantom size 0,0" ai não mostra nada pois não tem tamanho.
Esse é um problema difícil de resolver pq para executar um VALID é preciso teclar ENTER precisa pular de um get para outro, como não tem mais get fica impossibilitado de usar um VALID. A pessoa pode teclar ESC tudo é foco no windows.
Saudações,
Itamar M. Lins Jr.
No caso de existir um valid no ULTIMO GET, colocar mais um get com size 0,0 DISABLE ou não.
Eu faço assim: "@ x,y get oPhatom VAR cPhantom size 0,0" ai não mostra nada pois não tem tamanho.
Esse é um problema difícil de resolver pq para executar um VALID é preciso teclar ENTER precisa pular de um get para outro, como não tem mais get fica impossibilitado de usar um VALID. A pessoa pode teclar ESC tudo é foco no windows.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Criação de telas
gosto de telas simples e intuitivas, antes eu USAVA dois cliques no mouse para editar, mas vi que a curva de aprendizado de novos funcionários
levava mais tempo pois tinha de colocar alguém para ensinar
ai coloquei o BOTÃO [EDITAR]
o Botao EXCLUIR ja vai direto para confirmação, se tiver privilégios para isso , senão fica DISABLE
levava mais tempo pois tinha de colocar alguém para ensinar
ai coloquei o BOTÃO [EDITAR]
o Botao EXCLUIR ja vai direto para confirmação, se tiver privilégios para isso , senão fica DISABLE
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Criação de telas
Olá!
Eu uso BROWSE para tudo e a tela de edição ao lado, MINHA BARRA de SKIP é no próprio BROWSE.
Navegando no BROWSE os registros(no get) vão mudando.
Só tenho dois botões de navegação PRIMEIRO e ULTIMO, A pessoa usa a BARRA DO BROWSE SUBIR e DESCER.
Coisa antiga do tempo do DOS-XT que venho trazendo.
Saudações,
Itamar M. Lins Jr.
Qual é o problema de consultar com edit ligado ? Agora é JANELA cabe muita coisa, ANTES 80x24, agora temos muito mais espaço e ainda o TAB se for o caso.E se for apenas uma consulta?
Eu uso BROWSE para tudo e a tela de edição ao lado, MINHA BARRA de SKIP é no próprio BROWSE.
Navegando no BROWSE os registros(no get) vão mudando.
Só tenho dois botões de navegação PRIMEIRO e ULTIMO, A pessoa usa a BARRA DO BROWSE SUBIR e DESCER.
Coisa antiga do tempo do DOS-XT que venho trazendo.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Criação de telas
depois de algumas dicas de SQL do Quintas , mudei todas as consultas letra a letra para pegar qualquer campo de consulta ai liberei o HEADER do browse, agora uso para pegar todos os registro , inicio somente com 50 para ficar mais rápido e se precisar clico no header e trago tudo, caso contrario vou pesquisando letra a letra e trazendo somente 50 registros, ficou rápido
e uso a barra de rolagem para subir ou descer o browse, sem botões de navegação no browse
partindo da experiencia de uso eles preferem pesquisar letra a letra que encontra mais rápido de que ficar navegando usando botoes, e em alguns casos muito esporádicos eles usam o cadastro todo para olhar os dados
e uso a barra de rolagem para subir ou descer o browse, sem botões de navegação no browse
partindo da experiencia de uso eles preferem pesquisar letra a letra que encontra mais rápido de que ficar navegando usando botoes, e em alguns casos muito esporádicos eles usam o cadastro todo para olhar os dados
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
-
Fernando queiroz
- Usuário Nível 4

- Mensagens: 779
- Registrado em: 13 Nov 2014 00:41
- Localização: Porto Alegre/RS
Criação de telas
foi exatamente o que eliminei , o uso do header para escolher o que pesquisar, agora pesquisa em todos os campos e o header eu liberei para trazer todos os registros quando clicado.Quem vai ficar usando barra/botão para navegar em 10 mil registros ?...
Por sinal a barra de pesquisa nem get tem, a pessoa tecla no head e pressiona as teclas, números, letras.
posso pesquisar por nome, parte de nome, cpf, telefone sem precisar escolhar qual sera o campo de pesquisa, ha e tambem nao tem get
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Criação de telas
O fonte testado, agora com mais campos:
O resultado gerado:
não
só precisa de um modelo, e encontrar a fórmula de cálculo das posições.
Pra quem não notou, a lista é equivalente a dbStruct() que pega a estrutura de um DBF.
Tá aí uma geração automática pra DBF, básica.
só trocar isto:
por isto:
Lógico, falta campo Date(), Memo(), etc.
É só um modelo básico.
Código: Selecionar todos
PROCEDURE Main
LOCAL aCamposList, cNome, cTipo, nLen, nRow, aCampo
aCamposList := { ;
{ "codigo", "N", 6 }, ;
{ "nome", "C", 30 }, ;
{ "endereco", "C", 30 }, ;
{ "cidade", "C", 20 }, ;
{ "bairro", "C", 20 }, ;
{ "uf", "C", 2 } }
SET ALTERNATE TO test.txt
SET ALTERNATE ON
? [PROCEDURE Main]
FOR EACH aCampo IN aCamposList
cNome := aCampo[1]
cTipo := aCampo[2]
nLen := aCampo[3]
? [LOCAL ] + iif( cTipo == "N", [n], [c] ) + cNome + [ := ] + iif( cTipo == "N", [0], [Space(] + Ltrim( Str( nLen ) ) + [)] )
NEXT
? [SetMode(25,80)]
nRow := 1
FOR EACH aCampo IN aCamposList
cNome := aCampo[1]
cTipo := aCampo[2]
nLen := aCampo[3]
(nLen) // nao usado
? [@ ] + Ltrim( Str( nRow ) ) + [, 0 SAY "] + cNome + [" GET ] + iif( cTipo == "N",[n], [c] ) + cNome
nRow += 1
NEXT
? [READ]
SET ALTERNATE OFF
SET ALTERNATE TO
RETURN
gerar fonte é difícil ?PROCEDURE Main
LOCAL ncodigo := 0
LOCAL cnome := Space(30)
LOCAL cendereco := Space(30)
LOCAL ccidade := Space(20)
LOCAL cbairro := Space(20)
LOCAL cuf := Space(2)
SetMode(25,80)
@ 1, 0 SAY "codigo" GET ncodigo
@ 2, 0 SAY "nome" GET cnome
@ 3, 0 SAY "endereco" GET cendereco
@ 4, 0 SAY "cidade" GET ccidade
@ 5, 0 SAY "bairro" GET cbairro
@ 6, 0 SAY "uf" GET cuf
READ
não
só precisa de um modelo, e encontrar a fórmula de cálculo das posições.
Pra quem não notou, a lista é equivalente a dbStruct() que pega a estrutura de um DBF.
Tá aí uma geração automática pra DBF, básica.
só trocar isto:
Código: Selecionar todos
aCamposList := { ;
{ "codigo", "N", 6 }, ;
{ "nome", "C", 30 }, ;
{ "endereco", "C", 30 }, ;
{ "cidade", "C", 20 }, ;
{ "bairro", "C", 20 }, ;
{ "uf", "C", 2 } }
Código: Selecionar todos
aCamposList := dbStruct()
É só um modelo básico.
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
Criação de telas
Agora mais visível do que se trata
Liberando mais opções
outro dbf
Código: Selecionar todos
#include "hbclass.ch"
#include "directry.ch"
#define STYLE_BACK WIN_RGB( 13, 16, 51 )
#define STYLE_FORE WIN_RGB( 255, 255, 255 )
//#define STYLE_BTN_NORMAL HStyle():New( { STYLE_BACK }, 1 )
//#define STYLE_BTN_CLICK HStyle():New( { STYLE_BACK }, 1,, 3, 0 )
//#define STYLE_BTN_OVER HStyle():New( { 16759929, 16771062 }, 1,, 2, 12164479 )
//#define STYLE_BTN_ALL { STYLE_BTN_NORMAL, STYLE_BTN_CLICK, STYLE_BTN_OVER }
PROCEDURE PTEShwguiCadastro( cModule, cTitle, ... )
LOCAL aFileList, aFile
(cModule)
(cTitle)
SET EXCLUSIVE OFF
aFileList := Directory( "*.dbf" )
IF Len( aFileList ) == 0
hwg_MsgInfo( "No files for test" )
ELSE
FOR EACH aFile IN aFileList
Execute( hb_FNameName( aFile[ F_NAME ] ) )
IF aFile:__EnumIndex > 10
EXIT
ENDIF
NEXT
ENDIF
RETURN
FUNCTION Execute( cFile )
LOCAL oDlg
oDlg := MyTestClass():New()
oDlg:cFileDBF := cFile
oDlg:cTitle := "test of " + cFile
oDlg:cOptions := ""
//AAdd( oDlg:aOptionList, { "Mail", { || Nil } } )
//AAdd( oDlg:aOptionList, { "CtlList", { || oDlg:ShowCtl() } } )
oDlg:Execute()
RETURN Nil
CREATE CLASS MyTestClass INHERIT hwgui_frmCadClass
METHOD ShowCtlList()
ENDCLASS
METHOD ShowCtlList() CLASS MyTestClass
LOCAL oControl, cTxt := "", cTxtTmp := ""
FOR EACH oControl IN ::oDlg:aControlList
IF Len( cTxtTmp ) > 500
cTxt += cTxtTmp + hb_Eol()
cTxtTmp := ""
ENDIF
cTxtTmp += oControl[2]:winClass + Ltrim( Str( oControl[2]:id ) ) + " "
NEXT
cTxt += cTxtTmp
hwg_MsgInfo( cTxt )
RETURN Nil
Código: Selecionar todos
FUNCTION Execute( cFile )
LOCAL oDlg
oDlg := MyTestClass():New()
oDlg:cFileDBF := cFile
oDlg:cTitle := "test of " + cFile
oDlg:cOptions := "IEDP"
AAdd( oDlg:aOptionList, { "Mail", { || Nil } } )
AAdd( oDlg:aOptionList, { "CtlList", { || oDlg:ShowCtl() } } )
oDlg:Execute()
RETURN Nil
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
Criação de telas
Os fontes estão na hwgui oficial, pasta test\mixed
Estou usando a hwgui oficial, mas compilada com parâmetros opcionais
Usando harbour 3.2 oficial com minhas modificações básicas, como por exemplo, remover a adição de CH da GTWVG.HBC pra não dar conflito.
As modificações estão lá no oficial como pull request
Resumindo: tudo público, nada particular escondido nas versões que uso.
Na dúvida, aqui fontes e compilado.
Ele vai criar telas pra todos os DBFs que existirem na pasta.
Aqui tem um DBF a mais do que na hwgui, com mais de 30 campos, pra acionar TAB.
Estou usando a hwgui oficial, mas compilada com parâmetros opcionais
Código: Selecionar todos
PRGFLAGS=-m -n -w3 -es2 -ge1 -DMT_EXPERIMENTAL -DHB_NO_GTGUI=YES -DHB_NO_HWGUIDEBUG=YES
As modificações estão lá no oficial como pull request
Resumindo: tudo público, nada particular escondido nas versões que uso.
Na dúvida, aqui fontes e compilado.
Ele vai criar telas pra todos os DBFs que existirem na pasta.
Aqui tem um DBF a mais do que na hwgui, com mais de 30 campos, pra acionar TAB.
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
Criação de telas
Agora com o caption encima do get.
Não olhei como configurar tamanho de fonte, e não sei se vou olhar.
Tá tudo por conta do default da hwgui.
É tudo encima do array.
Se alterar o array, vai ter os campos que quiser, tipo que quiser, tamanho que quiser, e o texto que quiser.
Só não entendi porque ficou torto se são do mesmo tamanho
A posição não tem nada a ver com tipo de letra.
Não olhei como configurar tamanho de fonte, e não sei se vou olhar.
Tá tudo por conta do default da hwgui.
É tudo encima do array.
Se alterar o array, vai ter os campos que quiser, tipo que quiser, tamanho que quiser, e o texto que quiser.
Só não entendi porque ficou torto se são do mesmo tamanho
A posição não tem nada a ver com tipo de letra.
Código: Selecionar todos
dbCreate( "test", { ;
{ "IDSTOCK", "N", 6, 0 }, ;
{ "NAME", "C", 50, 0 }, ;
{ "VALUE", "N", 10, 2 }, ;
{ "QTD", "N", 6, 0 }, ;
{ "BARCODE", "N", 10, 0 }, ;
{ "OTHER", "C", 50, 0 } } )
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
Criação de telas
Nem percebi outra utilidade disso:
Só pra dar idéia
E lá temos toda digitação pronta, pra usar em outro módulo, sem ter nada a ver com o funcionamento automático.
Só pra dar idéia
Código: Selecionar todos
PRIVATE lista de variáveis
LOCAL oTela := DlgAutoMain():New()
oTela:EditList := { ... }
oTela:EditCreate()
oTela:EditOn()
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
Criação de telas
Pra teste, coloquei 3 opções simultâneas.
Modelo 1: say seguido de get, um campo por linha
Modelo 2: say seguido de get, o que couber na linha
Modelo 3: say acima do get, o que couber na linha
Dependendo da quantidade de campos, fica tudo uma bost.
O primeiro até fica bonito, mas o segundo fica uma zona.
Modelo 1: say seguido de get, um campo por linha
Modelo 2: say seguido de get, o que couber na linha
Modelo 3: say acima do get, o que couber na linha
Dependendo da quantidade de campos, fica tudo uma bost.
O primeiro até fica bonito, mas o segundo fica uma zona.
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/