Página 7 de 11

Gerador/criação de telas/executor

Enviado: 06 Fev 2024 18:27
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.

Gerador/criação de telas/executor

Enviado: 11 Fev 2024 18:18
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.

Gerador/criação de telas/executor

Enviado: 15 Fev 2024 12:35
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.

Gerador/criação de telas/executor

Enviado: 15 Fev 2024 21:01
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.

Gerador/criação de telas/executor

Enviado: 28 Mar 2024 14:40
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

Gerador/criação de telas/executor

Enviado: 01 Abr 2024 11:27
por paiva
José bom dia

vc teria dlgauto.zip atual ?
para eu verificar ?

Obrigado

Paiva

Gerador/criação de telas/executor

Enviado: 01 Abr 2024 12:55
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

Gerador/criação de telas/executor

Enviado: 12 Abr 2024 20:34
por JoséQuintas
dlgauto.png
TABPAGE com imagem.
Só em LIB que tem o recurso.

Gerador/criação de telas/executor

Enviado: 12 Abr 2024 21:14
por JoséQuintas
iskey.png
Campos que permitem pesquisa com button no "get"
Só pras LIBs que permitem.

Gerador/criação de telas/executor

Enviado: 14 Abr 2024 08:39
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.

Gerador/criação de telas/executor

Enviado: 15 Abr 2024 19:38
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...

Gerador/criação de telas/executor

Enviado: 16 Abr 2024 21:23
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....

Gerador/criação de telas/executor

Enviado: 19 Abr 2024 06:06
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.

Gerador/criação de telas/executor

Enviado: 19 Abr 2024 07:45
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.

Gerador/criação de telas/executor

Enviado: 20 Abr 2024 19:34
por JoséQuintas
Ok, quebra galho temporário: nunca fechar arquivos.
Testes podem prosseguir desse jeito.