hprogres e NewBox()

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

hprogres e NewBox()

Mensagem por JoséQuintas »

DS_SETFOREGROUND
Causes the system to use the SetForegroundWindow function to bring the dialog box to the foreground. This style is useful for modal dialog boxes that require immediate attention from the user regardless of whether the owner window is the foreground window.
The system restricts which processes can set the foreground window. For more information, see Foreground and Background Windows.
Este faz a mesma coisa, mas pelo menos fica limitado ao aplicativo.
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

hprogres e NewBox()

Mensagem por JoséQuintas »

progbar.png
Ficou menos ruim....
Está acima de tudo do aplicativo, mas não acima de tudo do windows.
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

hprogres e NewBox()

Mensagem por JoséQuintas »

Acho que isso é o melhor que dá pra fazer, já que se for pra fixar encima da janela, pra isso seria o progressbar normal, sem dialog.
O mesmo se fixar como modal, o que vai impedir de mexer na outra janela, que seria melhor deixar dentro da janela, sem ser newbox.
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

hprogres e NewBox()

Mensagem por JoséQuintas »

Eu disse tempos atrás, acho mais fácil mexer nos fontes da hwgui do que criar janelas em hwgui.
Tenho minhas limitações, mas consigo ajudar.

E volto a dizer: fontes da hwgui são parecidos com gtwvg, dá pra aproveitar muita coisa de uma pra outra, só vamos esbarrar em diferenças em C, e o Harbour 3.4 tá muito bom nisso.

hwgui, repare que é tudo SendMessage():

Código: Selecionar todos

/*
   UpdateProgressBar( hPBar )
*/
HB_FUNC( HWG_UPDATEPROGRESSBAR )
{
   SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_STEPIT, 0, 0 );
}

/*
   ResetProgressBar( hPBar )
   Added by DF7BE
*/
HB_FUNC( HWG_RESETPROGRESSBAR )
{
   SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETPOS,
         ( WPARAM ) 0 , 0 );
}

/*
   SetProgressBar( hPBar , nPercent )
*/
HB_FUNC( HWG_SETPROGRESSBAR )
{
   SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETPOS,
         ( WPARAM ) hb_parni( 2 ), 0 );
}

HB_FUNC( HWG_SETRANGEPROGRESSBAR )
{

   SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETRANGE, 0, MAKELPARAM( 0, hb_parni( 2 ) ) );
   SendMessage( ( HWND ) HB_PARHANDLE( 1 ), PBM_SETSTEP, 1 , 0 ); 
}   
progrbar na gtwvg do Harbour 3.4: idem, mas em PRG, e acaba usando wapi_SendMessage() da hbwin.

Código: Selecionar todos

METHOD WvgProgressBar:SetValue( nValue, nRangeMin, nRangeMax, nSpeed )

   IF HB_ISNUMERIC( nRangeMin ) .AND. HB_ISNUMERIC( nRangeMax ) .AND. ! ::lMarquee
      ::nRangeMin := nRangeMin
      ::nRangeMax := nRangeMax
      ::sendMessage( PBM_SETRANGE, 0, WIN_MAKELONG( ::nRangeMin, ::nRangeMax ) )
   ENDIF
   IF HB_ISNUMERIC( nValue ) .AND. ! ::lMarquee
      ::sendMessage( PBM_SETPOS, nValue, 0 )
      ::nValue := nValue
   ENDIF
   IF HB_ISNUMERIC( nSpeed ) .AND. ::lMarquee
      ::sendMessage( PBM_SETMARQUEE, 1, nSpeed )
      ::nSpeed := nSpeed
   ENDIF

   RETURN ::sendMessage( PBM_GETPOS, 0, 0 )

METHOD PROCEDURE WvgProgressBar:SetColorBarFG( nColor )

   IF HB_ISNUMERIC( nColor )
      ::sendMessage( PBM_SETBARCOLOR, 0, nColor )
   ENDIF

   RETURN

METHOD PROCEDURE WvgProgressBar:SetColorBarBG( nColor )

   IF HB_ISNUMERIC( nColor )
      ::sendMessage( PBM_SETBKCOLOR, 0, nColor )
   ENDIF

   RETURN
Os exemplos de gtwvg podem ser ruins, mas os fontes escondem maravilhas, assim como a hbwin do Harbour 3.4 também tem maravilhas de compatilidade.
Digo isso pra olharem os fontes, e aproveitarem pra entender o comportamento e melhorar tudo.
Não importa o que se use, dá pra aproveitar de uma lib pra outra.
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

hprogres e NewBox()

Mensagem por JoséQuintas »

Código: Selecionar todos

METHOD WvgWindow:sendMessage( nMessage, nlParam, nwParam )
   RETURN wapi_SendMessage( ::hWnd, nMessage, nlParam, nwParam )
No caso da gtwvg existe um método junto das janelas, que já pega o handle (hWnd).
Como usa muito, acaba "economizando" o parâmetro que indica o handle, e evita erros.

Dá pra fazer igual na hwgui? talvez... mas entra linguagem C aí no meio, pra compatibilidade.

Ao invés de SendMessage( nomedocontrole:handle, ... ), é só usar nomedocontrole:SendMessage( ... ) ou ::SendMessage(...) sem precisar dizer que é o controle atual.
É interessante.

E se pensar direito: Pra que tanta função pra SendMessage(), e ficar dependendo de rotina em C, se uma wapi_SendMessage() abre até possilidades pro programador PRG testar outras coisas?
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

hprogres e NewBox()

Mensagem por JoséQuintas »

E pra quem usa console, gtwvg, gtwvt, etc....

Pode usar esse controle da hwgui, de progressbar, pra começo de migração/testes.
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
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

hprogres e NewBox()

Mensagem por Itamar M. Lins Jr. »

Olá!
O Kresin fica com a cabeça também no GTK(LINUX) ai tem que criar compatibilidades entre um e outro. Deve passar(ignorar) muita coisa (firulas) mas essa do X no dialog(progress) não pode ter.

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

hprogres e NewBox()

Mensagem por JoséQuintas »

hwgui.png
Vixe... agora que vi.... chamei a gthwg de gtwvg kkkk
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

hprogres e NewBox()

Mensagem por JoséQuintas »

Sobre esta mudança:

Código: Selecionar todos

// HBMK_HAS_* are automatically created by HBMK when use HBC files, no extra setup

#ifndef HBMK_HAS_GTWVG
Só quem usa HBMK2 e GTWVG.HBC, gtwvg como default, é que vai ter diferença.
O HBMK cria a variável automaticamente.
Ou seja, só eu kkkk
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