Modificando samples

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

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

Modificando samples e bug(*) encontrado(*)

Mensagem por JoséQuintas »

status.png
Pipino estranho.
Peguei a substituta da barra de status.
Coloquei nas duas dialogs.
Só tem configuração de altura, estão exatamente iguais.
Porque diferente ?

Código: Selecionar todos

   ADD STATUS PANEL ;
      TO     oDlg ;
      HEIGHT 30 ;
      PARTS  80, 200, 0

A imagem não está cortada, mostra só isso 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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Modificando samples e bug(*) encontrado(*)

Mensagem por JoséQuintas »

Eu ja tinha notado que ela tem problemas de atualização.
Se eu tentar mexer na janela com o mouse, a barra aparece, tentar aumentar o tamanho, mesmo sem aumentar..
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

Modificando samples e bug(*) encontrado(*)

Mensagem por JoséQuintas »

O interessante disso tudo:

No final, todos os exemplos estão virando parte de uma única dialog, em tabpage.
Isso não chega a ser um aplicativo, mas está fazendo uso de tudo.
É um teste mais pesado do que usar cada controle isolado.
Podemos dizer que se tiver que dar defeito, vai ser aí mesmo.

Essa demonstração pode compilar e executar exemplos.
Acaba até nem dando pra perceber o que está dentro ou fora do demoall.
Mas o que aparecer na tab, está dentro.
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

Modificando samples e bug(*) encontrado(*)

Mensagem por JoséQuintas »

democombobox.png
E não é que apareceu um.
O exemplo tem tab.
Ficou tab dentro de 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

Modificando samples

Mensagem por JoséQuintas »

Aqui o exemplo demotab.prg
Está mostrando uma tab dentro da tabpage browse.
Acho que o exemplo, que é de tab, ficou claro.

Código: Selecionar todos

   BEGIN PAGE "browse" ;
      OF oTab

      @ 30, 30 TAB oTab2 ;
         ITEMS {} ;
         SIZE  650, 450

         BEGIN PAGE "browse array" ;
            OF oTab2

            DemoBrowseArray( .F., oTab2 )

         END PAGE OF oTab2

         BEGIN PAGE "browse dbf" ;
            OF oTab2

            DemoBrowseDBF( .F., oTab2 )

         END PAGE OF oTab2

#ifdef __PLATFORM__WINDOWS
         BEGIN PAGE "browseado" ;
            OF oTab2

            DemoBrowseADO( .F., oTab2 )

         END PAGE OF oTab2
#endif

   END PAGE OF oTab
browse.png
O resultado é a tabpage browse, com a tab de cada browse.

Se ele quiser ver o bnrowse array, dbf ou ado, aí ele vai no fonte de cada um.
Tudo no mesmo fonte seria uma complicação maior.
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

Modificando samples

Mensagem por JoséQuintas »

demoall.png
E aqui o demoall.prg, que parece o demotab.prg mas não é.

Como faz a tab?
É só olhar o demotab.prg, foi ele quem criou essa parte.

Como faz esse browse?
Seria olhar o demobrowsearray.prg, foi ele quem criou essa parte.
Esse fonte não está separado, senão mostraria o título do 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/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Modificando samples

Mensagem por JoséQuintas »

Aí eu pensei....

E se....

Trocar o SAY "nome" por um button ?
samp.png
Só falta poder mostrar o código fonte.
Mas isso vai multiplicar rotinas, e multiplicar rotinas não é bom.
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

Modificando samples

Mensagem por JoséQuintas »

demohwgui.png
Ciclo completo.
Mostra tudo que é fonte.

Nem vão acreditar como é ridículo chegar nisso.

no exemplo:
se cria dialog ou não, e os dois botões.

Quando um exemplo usa o outro, já vão aparecendo os dois botões
O demoall usa várias tabpage, quando aproveita o fonte do exemplo, já vém com os botões, não precisa mais nada.

Só isso.

A única complicação nos fontes, não teve jeito, foram duas.

Chamar rotina

Código: Selecionar todos

   // do not remove button
   DemoCodeButton( "demobrowsedbf.prg", oDlg )
e pra não multiplicar fonte, um include

Código: Selecionar todos

#include "demo.ch"
Esse demo.ch vai multiplicar as rotinas, fazer o que.

Código: Selecionar todos

/*
  $Id: demo.ch

  Created to do not duplicate source code on all samples
*/

STATIC FUNCTION DemoCodeButton( cFileName, oDlg )

   LOCAL cRunName

   cRunName := StrTran( cFileName, ".prg", "" )

   @ 3, 30 OWNERBUTTON ;
      OF       oDlg ;
      SIZE     200, 24 ;
      TEXT     cFileName ;
      HSTYLES ;
         HStyle():New( {16759929,16772062}, 1 ), ;
         HStyle():New( {16759929}, 1,, 3, 0 ), ;
         HStyle():New( {16759929}, 1,, 2, 12164479 ) ;
      ON CLICK { || Do( cRunName ) }

   @ 220, 30 OWNERBUTTON ;
      OF oDlg ;
      SIZE 100, 24 ;
      TEXT "show code" ;
      HSTYLES ;
         HStyle():New( {16759929,16772062}, 1 ), ;
         HStyle():New( {16759929}, 1,, 3, 0 ), ;
         HStyle():New( {16759929}, 1,, 2, 12164479 ) ;
      ON CLICK { || ShowCode( cFileName ) }

   RETURN Nil

STATIC FUNCTION ShowCode( cFileName )

   LOCAL oDlg, oEdit, oFont

   IF ! File( cFileName )
      hwg_MsgInfo( cFileName + " not found" )
   ENDIF

   PREPARE FONT oFont ;
      NAME "Courier New" ;
      WIDTH 0 ;
      HEIGHT -13

   INIT DIALOG oDlg ;
      TITLE cFileName ;
      SIZE 800, 600 ;
      FONT oFont

   @ 10, 10 EDITBOX oEdit ;
      CAPTION MemoRead( cFileName ) ;
      SIZE    780, 580 ;
      ; // FONT    oFont
      STYLE   ES_MULTILINE + ES_AUTOVSCROLL + WS_VSCROLL + WS_HSCROLL

   ACTIVATE DIALOG oDlg CENTER

   RETURN Nil
criar dois botões, e uma dialog pra mostrar os fontes.

Se não fosse assim, eu teria que incluir manualmente em todos os fontes, ou criar fonte separado pra ser compilado, etc. etc. etc.
Pro usuário principiante, é só copiar o demo.ch.
Pro usuário interessado no código fonte, o que tem em demo.ch nem interessa, melhor que fique de fora.
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

Modificando samples

Mensagem por JoséQuintas »

Oficializado.

Ao postar limitações fiquei pensando.....
Tab com abas na direita ou embaixo, e não encima
Botões talvez embaixo e não encima.

Seria bom definir isso antes de mexer em todos os samples.

Foi dada a partida.
Muito trabalho pela frente.

Idéias pra melhorar o visual são bem vindas.

Sei programar, mas mexer com GUI, sou bem principiante, nem sei direito quais recursos poderia usar pra melhorar isso.
Como sempre fiz desde os tempos do Clipper.... vou usando o que conheço...
E minhas idéias se limitam a fazer com o que conheço, do jeito que conheço.

Na hora de mostrar o fonte... o que usar ? lembrei que já tinha feito isso no dlgauto pra campos string maiores que 100 caracteres, e no preview de relatório, e peguei de lá.
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