Clipper On Line • Ver Tópico - GTWVG: Meu modo de trabalho

GTWVG: Meu modo de trabalho

Outras bibliotecas visuais e IDEs para Harbour/xHarbour (xHGTK/HbWxW/GtWvT/GtWvW/WvWtools.etc)

Moderador: Moderadores

 

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 18 Nov 2020 10:39

Uia, agora com scrollbar funcionando pra posicionar também.
Só falta mesmo o tamanho do "ponteiro" pra aumentar com menos registros.

José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 18 Nov 2020 10:44

criação:
   oFrm:VScroll( nTop, nLeft, nBottom - nTop + 1, nRight - nLeft + 1 )
   oFrm:HScroll( nTop, nLeft, nBottom - nTop + 1, nRight - nLeft + 1 )


atualização do browse pra imagem:
      Atail( AppForms() ):UpdateScroll( cnSQL:RecordCount(), cnSQL:AbsolutePosition() )


atualização da imagem para o browse:
   Atail( AppForms() ):SetScroll( oBrowse, cnSQL )


METHOD HSCroll( nTop, nLeft, nHeight, nWidth ) CLASS frmGuiClass

   LOCAL oControl

   oControl := wvgScrollbar():New()
   oControl:SetColorBG( "0/6" )
   oControl:Create( , , { -( nTop + nHeight - 1 ), -nLeft }, { -1, -( nWidth - 2 ) } )
   ( nTop )
   AAdd( ::aControlList, { CONTROL_TYPE_HSCROLL, oControl } )

   RETURN Nil

METHOD VScroll( nTop, nLeft, nHeight, nWidth ) CLASS frmGuiClass

   LOCAL oControl

   oControl := wvgScrollbar():New()
   oControl:Type := WVGSCROLL_VERTICAL
   oControl:SetColorBG( "0/6" )
   oControl:Create( , , { -( nTop + 2 ), -( nLeft + nWidth - 2 ) }, { -( nHeight - 3 ), -2 } )
   AAdd( ::aControlList, { CONTROL_TYPE_VSCROLL, oControl } )

   RETURN Nil

METHOD SetScroll( oBrowse, cnSQL, nIndex ) CLASS frmGUIClass

   ( cnSQL )
   IF ::ControlByType( CONTROL_TYPE_VSCROLL, nIndex ) != Nil
      WITH OBJECT ::ControlByType( CONTROL_TYPE_VSCROLL, nIndex )
         :Scroll := { | aScroll, x, Self | (x), DoScroll( aScroll, Self, oBrowse, cnSQL ) }
         //:SetSize( { cnSQL:RecordCount(), 20 } )
         //:SetPos( { cnSQL:AbsolutePosition(), 0 } )
      ENDWITH
   ENDIF

   RETURN Nil

METHOD UpdateScroll( nEnd, nPos, nIndex ) CLASS frmGUIClass

   IF ::ControlByType( CONTROL_TYPE_VSCROLL, nIndex ) != Nil
      WITH OBJECT ::ControlByType( CONTROL_TYPE_VSCROLL, nIndex )
         :SetRange( { 1, nEnd } )
         :SendMessage( SBM_SETPOS, nPos, 0 )
         //:SendMessage( SBM_SETRANGEREDRAW, 1, nEnd )
      ENDWITH
   ENDIF

   RETURN Nil

FUNCTION DoScroll( aScroll, oControl, oBrowse, cnSQL )

   LOCAL nCommand := aScroll[2], nScroll

   DO CASE
   CASE nCommand == WVGSB_TOP;      oBrowse:GoTop()
   CASE nCommand == WVGSB_BOTTOM;   oBrowse:GoBottom()
   CASE nCommand == WVGSB_PREVPOS;  oBrowse:Up()
   CASE nCommand == WVGSB_NEXTPOS;  oBrowse:Down()
   CASE nCommand == WVGSB_PREVPAGE; oBrowse:PageUp()
   CASE nCommand == WVGSB_NEXTPAGE; oBrowse:PageDown()
   CASE nCommand == WVGSB_SLIDERTRACK
      nScroll := oControl:Getdata()
      cnSQL:Move( nScroll - cnSQL:AbsolutePosition() )
   ENDCASE
   hb_KeyPut( K_LEFT ) // pra forçar atualização de tela
   oBrowse:RefreshAll()
   RETURN Nil
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 18 Nov 2020 11:47

Esqueci de dizer:

Como alterei a rotina BrowseADO(), isso vale pra TODOS os browses do aplicativo, aqueles de cadastro, pedidos, financeiro, estoque, etc.

A exceção, por enquanto, são os "sub-browses", como por exemplo os produtos de um pedido.
Vou ter que avaliar isso primeiro.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 18 Nov 2020 14:44

tela.png


Tava olhando aqui... agora só vai precisar o ícone de sair, e olhe lá....
Não tinha pensado nisso antes, mas a barra lateral substitui todos os ícones.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor MSDN » 18 Nov 2020 15:26

Vc está fazendo o caminho mais longo, mas aos poucos está assimilando muito do que já te foi dito sobre GUI, UI/UX, tá no caminho !
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 847
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 121 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 18 Nov 2020 16:16

MSDN escreveu:Vc está fazendo o caminho mais longo, mas aos poucos está assimilando muito do que já te foi dito sobre GUI, UI/UX, tá no caminho !


Então, até aqui comprova o que eu falava.
A Scrollbar já existe há uns 10 anos.
Trocar de LIB poderia me dar mais recursos, mas se não uso nem os que tenho, pra que mais recursos?

Com certeza não vou ter um super-hyper-mega-aplicativo, mas também não teria com nenhuma outra lib.
É continuar descobrindo o que pode ser feito, seja com a lib atual ou com outra lib.
Por enquanto nenhuma idéia que justifique trocar de LIB, e nem mesmo sobre o que mais usar da lib atual.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor MSDN » 18 Nov 2020 16:38

Depois que eu entendi que as tuas considerações eram exclusivamente para vc como programador, e para os teus sistemas, assimilei o que vc fala nas postagens, porém que fique claro, nem tudo o que vc enfatiza ou argumenta serve para outros programadores, pois vc está sempre falando da sua realidade !
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 847
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 121 vezes

GTWVG: Meu modo de trabalho

Mensagempor Vlademiro » 18 Nov 2020 20:57

Quintas, vc disponibilizou os fontes completos em algum local ?
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 699
Data de registro: 11 Jul 2005 02:46
Curtiu: 14 vezes
Mens.Curtidas: 53 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 19 Nov 2020 13:31

Não sei se entendi a pergunta, fontes do que?
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor Vlademiro » 20 Nov 2020 01:31

Deixa pra lá. Pensei que as suas postagens do tipo "meu modo de trabalho" fossem com o objetivo de ensinar alguma coisa no estilo de um tutorial.
Avatar de usuário

Vlademiro
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 699
Data de registro: 11 Jul 2005 02:46
Curtiu: 14 vezes
Mens.Curtidas: 53 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 20 Nov 2020 11:57

A parte do scrollbar está aí.
A classe acaba agrupando tudo, pra facilitar.

CLASS frmClass // ou TelaClass
   VAR aControlList INIT {}
ENDCLASS


A partir daí, cada tela, real ou não, tem sua variável.

oTelaCadastro := frmClass():New()


Em gui se usam janelas/windows ou dialogs, acaba sendo parecido, a variável acaba sendo a "janela", mesmo que não seja verdadeira.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 20 Nov 2020 12:07

Vlademiro escreveu:Deixa pra lá. Pensei que as suas postagens do tipo "meu modo de trabalho" fossem com o objetivo de ensinar alguma coisa no estilo de um tutorial.


MSDN escreveu:porém que fique claro, nem tudo o que vc enfatiza ou argumenta serve para outros programadores, pois vc está sempre falando da sua realidade !


Justamente por isso chamei "meu modo de trabalho".
Tem a ver com o modo como estou usando pra mim.
Nem sei se mais alguém usa GTWVG.

Aproveitando:
O que facilitou muito foi criar aquilo de concentrar tudo da tela em uma única classe, porque altero o aplicativo inteiro apenas alterando a classe.
E também troca de tela apenas usando essa mesma classe, porque os controles ficam nela.
Em multithread são janelas diferentes, sem multithread é sempre a mesma janela.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 23 Nov 2020 13:49

tela.png


Aqui cai em uma situação curiosa.
Pensei em colocar aquela barra lateral de enfeite.
Precisaria mudar cada menu pra GUI, pra virar janela uma encima da outra, pra que a barra não cubra texto.
Mas ao mesmo tempo, a barra anterior vai acabar ficando oculta, porque tem janela por cima.

Conclusão: é perda de tempo.
"Talvez" mostrar apenas na janela que está por cima, o que enfeita um pouco, apesar de perda de tempo também kkkk

Tem horas que parece que seria melhor criar uma GUI direcionada a console, pra uso em console.
É onde às vezes parece que em GUI poderia ser igual.
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

GTWVG: Meu modo de trabalho

Mensagempor MSDN » 23 Nov 2020 13:59

Isso que vc acabou de falar é muito interessante, porém seria igual ao núcleo de qualquer lib que acessa a API do Windows, pois o Sistema Operacional não deixa nada aparecer na tela que não passe pela API, então o que fica de opção, seria vc fazer a QuintasGUI utilizando como base a GTwvg ou a HwGUI, pq vc já disse que não gosta ou não se adapta a forma atual que alguns recursos funcionam, então seria o caso de ter algo específico.
MSDN
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 847
Data de registro: 28 Nov 2003 14:55
Cidade/Estado: CWB
Curtiu: 178 vezes
Mens.Curtidas: 121 vezes

GTWVG: Meu modo de trabalho

Mensagempor JoséQuintas » 23 Nov 2020 15:57

MSDN escreveu: pois o Sistema Operacional não deixa nada aparecer na tela que não passe pela API,


Aí que está.... não é exatamente isso.
A diferença básica da tela GT e uma GUI é.... que GT prefere o FOCO na janela principal.

É tudo janela, GUI ou GT.
Mas.... na GT, ao criar o button, se o foco ficar no button, o ESC vai ser no button.
Já em GUI... tem tudo aquilo de ficar transferindo teclado/mouse entre janelas, e o ESC acaba indo pra janela mãe, porque a LIB faz isso.

Nos textbox, por exemplo, de qualquer forma é a DIALOG que faz a navegação, uma espécie de GETSYS para o aplicativo.
Pra dar certo na GTWVG, o ideal seria nem posicionar o foco do Windows no textbox, e fazer isso pela própria janela normal/GETSYS, que se transformaria em uma DIALOG.
À primeira vista, o único problema seria: como avisar ao usuário sobre a posição atual, já que o "cursor" não poderia ser transferido pra janela do textbox.
Tirando isso, o comportamento seria o mesmo - apenas o cursor poderia ser a diferença
José M. C. Quintas
Harbour 3.4, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, hbnetio, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
Avatar de usuário

JoséQuintas
Colaborador

Colaborador
 
Mensagens: 15499
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 13 vezes
Mens.Curtidas: 897 vezes

Anterior Próximo



Retornar para Outras Bibliotecas Visuais e IDEs

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 1 visitante


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro