Clipper On Line • Ver Tópico - hprogres e NewBox()

hprogres e NewBox()

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

 

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 10:14

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 10:27

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 10:31

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 10:41

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():
/*
   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.
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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 10:53

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 11:09

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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

hprogres e NewBox()

Mensagempor Itamar M. Lins Jr. » 28 Out 2021 11:15

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.
Avatar de usuário

Itamar M. Lins Jr.
Colaborador

Colaborador
 
Mensagens: 6959
Data de registro: 30 Mai 2007 11:31
Cidade/Estado: Ilheus Bahia
Curtiu: 312 vezes
Mens.Curtidas: 508 vezes

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 11:30

hwgui.png


Vixe... agora que vi.... chamei a gthwg de gtwvg kkkk
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

hprogres e NewBox()

Mensagempor JoséQuintas » 28 Out 2021 11:37

Sobre esta mudança:
// 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, multithread, dbfcdx, ADO+MySql, PNotepad
"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 de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18160
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

Anterior



Retornar para HwGui

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


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