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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7929
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Gerador/criação de telas/executor

Mensagem por Itamar M. Lins Jr. »

Olá!
Como esperado, a mudança da hwgui está sendo meio radical, e tudo pode acontecer.
Não peguei esse bug aqui.
Os que peguei, foram corrigidos.
Sem um exemplo pequeno que demonstre o problema, não tem como saber.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
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 outro post.
Foi o Kresin que me passou o fonte.
Ao atualizar o texto, não atualiza.
Ao colocar refresh, tá ficando tudo rebatido, o conteúdo anterior e o atual, e vai acumulando eternamente, como dá pra ver na imagem.

Não é tamanho, é um texto encima do outro mesmo.
Veja CLIENT@CLIENT@CLIENT@
Conforme o registro é 1,2,3,4,5,6, somente o número está rebatido que é a parte diferente.
Na primeira parte é JOAO, MARIA, FRANCISCO, etc. fica totalmente rebatido

Talvez seja a falta de FillRect() ou algo assim, pra limpar primeiro, mas como é transparente, tem que ser com a cor transparente.

Parece piada, mas é isso mesmo: transparente não existe. Uma determinada cor é definida pra ser tratada como transparente.
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 »

Postei o fonte disto no grupo minigui.
Vamos ver se tem comentários.

Foi tudo sem querer, conforme foi acontecendo, só pra organizar o fonte.

É de principiante, no que se refere a GUI.
São telas simples, no que se refere ao visual.
É interessante ver uma simulação de aplicativo usando 1 textbox, 1 label, 1 button, e tab.
É interessante poder compilar com várias LIBs.
Dá pra testar LIBs ou recursos, basicamente mexendo no lib_xxxx.prg da lib, ou adicionando novos com alternativas pra LIB existente, ou pra novas LIBs.
E enquanto isso, dá pra ir fazendo funcionar cada LIB , e pensar em possibilidades pra acrescentar mais recursos.

É como mexer no aplicativo, mas sem mexer no aplicativo.
É resolver problemas que iriam acontecer no aplicativo, antes deles acontecerem no aplicativo.

Acho que esse conjunto de possibilidades é que deixou o gerador interessante.

Mas pra mim, como resultado pra mim, é que vou testando as LIBs, e procurando pensar em possibilidades.

Por exemplo: talvez já interessante criar uma tela de login, mesmo que não obedeça senha...
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 »

erro.png
LIB GUI no Harbour é uma coisa extraordinária

Segundo a mensagem de erro, deu erro em H_PDF.PRG.
Mas o que PDF tem a ver com isso ?
Aconteceu algo assim na HWGUI também.
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 »

Código: Selecionar todos

FUNCTION gui_ButtonCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, cCaption, cResName, bAction )

   IF Empty( xControl )
      xControl := gui_newctlname( "BUTTON" )
   ENDIF

   IF cCaption == "Cancel"
      @ nRow, nCol BUTTON ( xControl ) ;
         PARENT ( xDlg ) ;
         CAPTION  cCaption ;
         PICTURE  cResName ;
         ACTION   Eval( bAction ) ;
         WIDTH    nWidth ;
         HEIGHT   nHeight ;
         IMAGEALIGN TOP ;
         CANCEL // abort valid
   ELSE
      @ nRow, nCol BUTTON ( xControl ) ;
         PARENT ( xDlg ) ;
         CAPTION  cCaption ;
         PICTURE  cResName ;
         ACTION   Eval( bAction ) ;
         WIDTH    nWidth ;
         HEIGHT   nHeight ;
         IMAGEALIGN TOP
   ENDIF

   RETURN Nil
Encontrei.
Em OOHG, a cláusula CANCEL no button faz com que ao clicar no button ele anule a validação.
Na dúvida, mas acho que é igual no VB6.

Nota: acendeu uma luz, e procurei por VALID nos exemplos
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 »

Código: Selecionar todos

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

   IF Empty( xControl )
      xControl := gui_newctlname( "TAB" )
   ENDIF
   DEFINE TAB ( xControl ) ;
      PARENT ( xDlg ) ;
      AT nRow, nCol;
      WIDTH nWidth ;
      HEIGHT nHeight ;
      VALUE 1

   xControl := xDlg // because they are not on tab
   (nRow);(nCol);(nWidth);(nHeight);(xDlg)

   RETURN Nil
Sei lá.... em OOHG se disser que o parent é a TAB, diz que TAB não existe.
Com parent DIALOG ok, e fica tudo lá, certinho em cada PAGE da 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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Simulador de aplicativos (criação de telas)

Mensagem por JoséQuintas »

HMG Extended
hmge.png
HWGUI
hwgui.png
OOHG
oohg.png
Situação atual: tab e pages sendo criadas em todas

GTWVG parou naquilo, só cria as telas, não sei usar como GUI. Também tem TAB mas acho que incompleta.
Poderiam ser usados buttons, labels, com GET tradicional, mas isso foge do padrão do simulador, não dá pra usar a mesma lógica.
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 »

Uma ocorrência curiosa:
Pra acertar GTWVG, mudei de ON INIT para antes do ACTIVATE.
Só na HWGUI precisou ser diferente.

Em hwgui

Código: Selecionar todos

FUNCTION gui_DialogActivate( xDlg, bCode )

   xDlg:Center()
   IF Empty( bCode )
      xDlg:Activate()
   ELSE
      ACTIVATE DIALOG xDlg ON ACTIVATE bCode
   ENDIF

   RETURN Nil
Em GTWVG

Código: Selecionar todos

FUNCTION gui_DialogActivate( xDlg, bCode )

   (xDlg)
   IF ! Empty( bCode )
      Eval( bCode )
   ENDIF

   RETURN Nil
Em HMGE

Código: Selecionar todos

FUNCTION gui_DialogActivate( xDlg, bCode )

   IF ! Empty( bCode )
      Eval( bCode )
   ENDIF
   DoMethod( xDlg, "CENTER" )
   ACTIVATE WINDOW ( xDlg )

   RETURN Nil
Até dá pra entender: a tela precisa existir pra ocorrer a atualização.
gtwvg, por não ser dialog, já cria durante a definição, chega no activate está tudo desenhado.
No final, o estranho foi HMGE aceitar.

Mas agora GTWVG também atualizando a tela. Não tinha colocado codeblock nos buttons.
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 »

gywvg.png
A tela da GTWVG.
Isso são buttons, textbox e label do Windows, que EXISTEM na GTWVG, e usando coordenadas pixel.

Código: Selecionar todos

FUNCTION gui_ButtonCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, cCaption, cResName, bAction )

   ( xDlg );(xControl);(nRow);(nCol);(nWidth);(nHeight);(cCaption);(cResName);(bAction)
   xControl := wvgPushButton():New()
   WITH OBJECT xControl
      :PointerFocus := .F.
      :Style += BS_TOP
      :Create( xDlg,,{nCol,nRow},{nHeight,nWidth})
      :SetCaption( {, WVG_IMAGE_ICONRESOURCE, cResName } )
      :SetCaption( cCaption )
      :Activate := bAction
   ENDWITH

   RETURN Nil

FUNCTION gui_LabelCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, xValue, lBorder )

   (xDlg);(xControl);(nRow);(nCol);(nWidth);(nHeight);(xValue);(lBorder)
   xControl := wvgStatic():New()
   WITH OBJECT xControl
      :Type := WVGSTATIC_TYPE_TEXT
      :Options := WVGSTATIC_TEXT_LEFT
      :Style += iif( lBorder, WS_BORDER, 0 )
      :SetColorFG( "W/B" )
      :SetColorBG( "W/B" )
      :Caption := xValue
      :SetFont( "Arial" )
      :Create(xDlg,,{nCol,nRow},{nWidth,nHeight})
   ENDWITH

   RETURN Nil

FUNCTION gui_TextCreate( xDlg, xControl, nRow, nCol, nWidth, nHeight, ;
            xValue, cPicture, nMaxLength, bValid )

   (xDlg);(xControl);(nRow);(nCol);(nWidth);(nHeight);(xValue);(cPicture);(nMaxLength);(bValid)
   /*
   xControl := wvgStatic():New()
   WITH OBJECT xControl
      :Type := WVGSTATIC_TYPE_TEXT
      :Options := WVGSTATIC_TEXT_LEFT
      :SetColorFG( "W/B" )
      :SetColorBG( "W/B" )
      :Caption := xValue
      :SetFont( "Arial" )
      :Create(xDlg,,{nCol,nRow},{nWidth,nHeight})
   ENDWITH
   */
   xControl := wvgSle():New()
   WITH OBJECT xControl
      :Create( xDlg,,{nCol,nRow},{nWidth,nHeight})
      :SetData( Transform( xValue, "" ) )
   ENDWITH

   RETURN Nil
Na GTWVG são SLE pra linha única e MLE pra multilinhas, acho que esses nomes tem a ver com algum programa xbase - XPP.
Só lembrando: número positivo é considerado pixel, número negativo é considerado linha/coluna.
Por isso, mesmas coordenadas usadas nas outras libs.
SAY/GET, se fosse usado, sairia na tela de fundo.
Nota: falhando atualizar o label com borda.
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 »

gtwvg.png
Resolvido label.
Eu estava usando caption=, alterando só a variável interna, o correto é :SetCaption()

O Edit do textbox ainda não funciona, só funciona apagar letras.
Acho que é a falta da janela DIALOG, e por isso as letras são desviadas pra GT (janela texto) e não pro controle textbox.
Mas funciona o enable/disable deles.
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

Simulador/criação de telas/executor

Mensagem por JoséQuintas »

Curiosidade do demoxbp.prg

Código: Selecionar todos

   oAddr := WvgSLE():new()
   oAddr:bufferLength := 500
   oAddr:border       := .T.
   cNavigate          := "http://www.harbour.vouch.info"
   oAddr:dataLink     := {| x | iif( x == NIL, cNavigate, cNavigate := x ) }
   oAddr:setColorFG( RGB( 0, 0, 255   ) )
   oAddr:setColorBG( RGB( 0, 255, 255 ) )
   oAddr:create( oDA, , { 120, oTBar:currentSize()[ 2 ] }, { 500, 20 }, , .T. )
   oAddr:setData()
   oAddr:killInputFocus := {| m1, m2, oS | m1 := m1, m2 := m2, oS:getData(), oCom:navigate( cNavigate ) }
:bufferLength, deve ser o conhecido MAXLENGTH
:DataLink, é o conhecido Value da hwgui, cria o link com a variável
:KillInputFocus, deve ser o conhecido LostFocus, atualizando a variável

Só pra curiosidade, afinal, é a única GUI que faz parte do Harbour, mesmo que nunca usada.
Nem eu que uso GTWVG nunca usei essa parte somente GUI, por isso achei interessante acrescentar no simulador, mais como curiosidade.
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 »

JoséQuintas escreveu::bufferLength, deve ser o conhecido MAXLENGTH
E não é que o problema do textbox era esse.
Após o post fiz o teste.
Faltava definir o tamanho máximo.
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 »

hmg.png
Veja que em HMG tem exemplos do que seriam controles estilizados, criados por usuários.
Com as mudanças da HWGUI, ela pode entrar nessa fase.

De modo simples, aquilo de controle "feito a mão", pra fazer do jeito que quiser.

Acho que nem precisa dizer... as mesmas rotinas podem ser usadas em qualquer LIB incluindo WVG.

Quanto à atualização do PNG, acho que foi no Harbour da LIB e não no Harbour geral, não confirmei.
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 »

hmg3x.png
UIA !!!!
Mais uma LIB no simulador HMG 3
Falta acertar o browse.

A notícia talvez ruim: é a MINHA HMG3, modificados CH parcialmente pra funcionar igual HMG Extended
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 »

Isto é .... incrível.....

O browse abriu, mas não mostrou campos.

Então.... fui procurar exemplo de browse

NÃO TEM
NÃO É USADO EM LUGAR NENHUM
Incrí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/
Responder