DLGAUTO Dialogs automáticas (não geração de fontes)

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

Essa tela em funcionamento, só mais uma no meio de várias.

https://www.youtube.com/watch?v=qKq8t__VQ3c



Lembrando:
Não tem nenhum fonte específico, é tudo criado automático com base na estrutura, e algumas linhas de configuração.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

Achei solução pro browse da minigui, pra vários browses:

Já tinha a variável individual do browse, criei uma global

Código: Selecionar todos

   LOCAL aKeyCodeList, aDlgKeyCodeList := {}
Na rotina que não é presa a lib nenhuma, crio o codeblock pro browse, e repasso as duas variáveis

Na rotina pra HMG:

Código: Selecionar todos

FUNCTION gui_Browse( xDlg, xControl, nRow, nCol, nWidth, nHeight, oTbrowse, cField, xValue, workarea, aKeyCodeList, aDlgKeyCodeList )
...
   FOR EACH aItem IN aKeyCodeList
      AAdd( aDlgKeyCodeList, { xControl, aItem[ 1 ], aItem[ 2 ] } )
      _DefineHotKey( xDlg, 0, aItem[ 1 ], { || gui_DlgKeyDown( xDlg, xControl, aItem[ 1 ], workarea, cField, xValue, aDlgKeyCodeList ) } )
   NEXT
Será usado o browse global.
Tudo bem setar várias vezes a mesma tecla, vai ser sempre igual.
Já o array do codeblock, vai continuar sendo atualizado, e será usado com tudo que precisa.

Por último, o acionamento de tecla:

Código: Selecionar todos

STATIC FUNCTION gui_DlgKeyDown( xDlg, xControl, nKey, workarea, cField, xValue, aDlgKeyCodeList )

   LOCAL nPos

   nPos := hb_AScan( aDlgKeyCodeList, { | e | GetProperty( xDlg, "FOCUSEDCONTROL" ) == e[1] .AND. nKey == e[ 2 ] } )
   IF nPos != 0
      Eval( aDlgKeyCodeList[ nPos ][ 3 ], cField, @xValue, xDlg, xControl )
   ENDIF
   (xControl); (workarea)

   RETURN .T.
Está testando se o controle e tecla estão no array global.
Agora cada browse tem seu próprio INSERT, DELETE, ENTER.

hwgui e minigui, de um jeito ou de outro, vão fazer a mesma coisa, com ou sem a opção no browse.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

vshow.png
Nem sempre a mudança é radical.

Lembram da validação de campo ?
Pesquisa e mostra a descrição

É, mas nem sempre queremos a descrição.
Validar UF, cidade, CFOP, CST, etc. pode apenas ser validado sem mostrar descrição.

Alterei pra permitir deixar em branco.
Desta forma, vai apenas validar e/ou fazer browse das opções.

Aonde precisou alterar?
O campo pra isso fica em CFG_VSHOW
- Se deixou em branco, não precisa criar LABEL pra isso
- Da mesma forma, não precisa atualizar conteúdo do LABEL

Só isso, e já vale pra HMG Extended, HMG 3, OOHG e HWGUI.
Pois é, o barato é doido.

Nota: ao olhar o post vi um erro: ao mover o bloco de lugar, esqueci da área em uso, vai dar erro. A linha em vermelho está ANTES do SELECT, e foi pra depois.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

dlgauto.png
Deu certo.
STATE, que seria UF, valida com o cadastro, faz browse, mas não mostra descrição. vendedor e banco mostra descrição.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

Sei lá, acho que é só...

Código: Selecionar todos

FUNCTION gui_ComboCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, aList )

   @ nCol, nRow COMBOBOX xControl ITEMS aList OF xDlg STYLE WS_TABSTOP SIZE nWidth, nHeight

   RETURN Nil

FUNCTION gui_Checkbox( xDlg, xControl, nRow, nCol, nWidth, nHeight )

   @ nCol, nRow CHECKBOX xControl CAPTION "" OF xDlg STYLE WS_TABSTOP SIZE nWidth, nHeight

   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/
paiva
Usuário Nível 3
Usuário Nível 3
Mensagens: 300
Registrado em: 04 Ago 2005 10:28

Gerador/criação de telas/executor

Mensagem por paiva »

José bom dia

vc teria dlgauto.zip atual ?
para eu verificar ?

Obrigado

Paiva
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

Tá no endereço de sempre

https://github.com/JoseQuintas/dlgauto

Se tem o git instalado no computador:

Código: Selecionar todos

git clone https://github.com/JoseQuintas/dlgauto nomepasta
e depois pra atualizar é só entrar na pasta e digitar GIT PULL
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

dlgauto.png
TABPAGE com imagem.
Só em LIB que tem o recurso.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

iskey.png
Campos que permitem pesquisa com button no "get"
Só pras LIBs que permitem.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

status.png
Agora com statusbar.

Não é compatível com o dlgauto, mas tudo bem, talvez possa ser alterada.
GTWVG me mostra que é possível.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

test.png
Statusbar na gtwvg

Ainda não sei porque a faixa branca no CLSTATUS, mas tanto faz.
O alinhamento fica errado, porque não coloquei TAB, a posição 0,0 é com relação à janela e não à TAB que não existe. Mas tanto faz é só demonstração em X/Y PIXEL sem intenção de funcionar.
Checkbox ok, combobox tá fininho nem dá pra ver direito, em outro exemplo separado funcionou.
Mas ok, não é minha intenção fazer gtwvg funcionar no dlgauto, só não removi pra não perder o teste.

Na GTWVG não coloquei TAB nem BROWSE, será por isso a faixa ? sei lá.... mas até parece uma barra de scroll...
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

O teste tá tão interessante... que hoje tentei gerar a lib FIVEWIN.
Mas deu erro na compilação dos fontes em C usando mingw 7.3
Não queria trocar de compilador....
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

dlgauto.png
Agora que dlgauto está montado, adicionar uma LIB não é nada do outro mundo.
Pra criar a statusbar pra FIVEWIN, só preciso de um fonte exemplo, e fazer igual para as variáveis do dlgauto.

Mas apareceu uma situação diferente:

Para todas as LIBs, o dlgauto cria a TAB, e vai adicionando PAGE conforme a informação precisa mais espaço.
Para fivewin, pelo menos por enquanto, só encontrei criar a tab já com todas as pages.
Como quebra-galho, até solução melhor, criar sempre com 10.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

fivewin.png
Tá começando a ficar igual.
Nos controles adicionar PIXEL pra usar x/y ao invés de row/col.
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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Gerador/criação de telas/executor

Mensagem por JoséQuintas »

Ok, quebra galho temporário: nunca fechar arquivos.
Testes podem prosseguir desse jeito.
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/
Responder