Jump to content
Fivewin Brasil

wBrowse ficando preto


gibaf

Recommended Posts

ola a todos

tem um wBrowse tudo certinho, com as cores definidas tudo certo

se eu rolar para direta/esquerda (ou pela seta do teclado ou clicando na barra de rolagem do brw) permanece tudo ok

 

agora, se eu rolar pra baixo/cima (ou pela setas do teclado ou mesmo clicando na barra de rolagem do brw) o browse fica preto, permanecendo certo somente a linha do brw posicionada... se rolar pra direita/esquerda, volta ao normal... mas se voltar a rolar pra cima/baixo fica preto novamente

 

detalhe: ja tirei tudo onde faz cores no xbrowse e continua fazendo como escrito acima

 

e agora ?

Link to comment
Share on other sites

para explicar melhor:

 

sem navegar para baixou/cima fica ok, ou se navegar para direita/esquerda tambem fica ok

image.png.890f422ac0cf4b45bcda574050734691.png

 

agora, se navegar pra cima/baixo, fica tudo preto, assim:

image.png.526d9cad3ed10e74d01a7867df477f2d.png

mesmo assim, se navegar novamente para direita/esquerda, volta a ficar normal como na primeira tela

q doidera ! hehe

e agora ?

Link to comment
Share on other sites

andei olhando a classe e achei mais ou menos onde eh o problema:

 

 

METHOD DispBegin( lCreateDC ) CLASS TWBrowse
   
   local hDC, aInfo, hOldDC:= ::hDC

   DEFAULT lCreateDC:= .F.

   if lCreateDC
      hDC:= GetDC( ::hWnd )
   else
      hDC:= ::hDC
   endif
   aInfo:= FWDispBegin( ::hWnd, hDC )

   ::hDC:= aInfo[3]  // hDC de Memoria !!!

return { aInfo, if(lCreateDC, hDC, nil ), hOldDC }
 

 

se eu comentar essas duas linhas o problema relatado no inicio do topico resolve, porem, a rolagem pra cima e para baixo, nao faz certo, mas a tela preta para

 

alguem pra dar uma pista para resolver ?

 

Link to comment
Share on other sites

1 hora atrás, kapiaba disse:

o RECURSO é da WBROWSE mesmo? Poste um .RC do recurso e o fonte, ou um DEMO com o .DBF. no mega upload para testes.

abs.

 

Regards, saludos.

eh feito via programacao mesmo, basico, somente com dados minimos ja , pra tentar descobrir o problema, e ainda assim da o problema

 

oBrw:= TWBrowse():New(40,60 , 300 , 300 , ;
                        {|| COD, NOME}     , ;
                        {"Codigo","Nome"}  , ;
                        {80,200} , oDlg,,,,,,, ;
                        oFont ,,CLR_BLACK,CLR_WHITE,,.F.,cAlias,.T.,,.F.,,,)

 

mesmo erro se a sintaxe for pelo arquivo.rc

Link to comment
Share on other sites

humm...

 

um detalhe, nao sei se importante, pois tambem ja estava funcionando a tempo, parece q foi dado um  "click"... parece q uma chave foi ligada q comecou dar isso.. por isso q fico bolado (isso nao acontecia a anos q estou usando o wbrowse, e agora, do nada, acontece).

 

o detalhe eh q a tabela eh no banco postgress e abro ela (e uso tudo normalmente, no no browse q acontece isso), com o comandoÇ

 

dbUseArea( .T. , "SQLRDD" , "SELECT * FROM cliente" , "CLI" , .F. , .T. ,  , nConexao )

 

 

eh froid...

 

mas, tudo a de retornar como era antes... espero !

Link to comment
Share on other sites

pelo q entendi, nao eh dbf (ou a tabela em si)...

eu nao manjo de fonte das classes, mas o problema eh ali nessa funcao FWDispBegin da classe wbrowse...

 

METHOD DispBegin( lCreateDC ) CLASS TWBrowse
   
   local hDC, aInfo, hOldDC:= ::hDC

   DEFAULT lCreateDC:= .F.

   if lCreateDC
      hDC:= GetDC( ::hWnd )
   else
      hDC:= ::hDC
   endif
   aInfo:= FWDispBegin( ::hWnd, hDC )

   ::hDC:= aInfo[3]  // hDC de Memoria !!!

return { aInfo, if(lCreateDC, hDC, nil ), hOldDC }
 

 

o q sera q esse comando faz ?

 

ate li no manual sobre essa funcao, mas eh entedi foi eh molufas !

 

 

FWDispBegin() Previous  Top  Next

Part of the double buffer painting technique. Creates a memory DC as a temporary replacement for the actual DC of the window on which the painting takes place.
Syntax:

   
  FWDispBegin( <hWnd>, <hDC> ) --> aInfo  
   

Parameters:
 

  <hWnd> The handle of the painting window.  
  <hDC> The actual DC of the window .  
   

Returns:
 

  <aInfo> An array of informations required by FWDispEnd().  
   

Sample :

 

Source code:

   
  SOURCE\WINAPI\DC.C

 

Link to comment
Share on other sites

conforme o manual, esta aqui

Source code:

   
  SOURCE\WINAPI\DC.C

 

 

e eis a funcao:

#ifdef __HARBOUR__
   HB_FUNC( FWDISPBEGIN ) // ( hWnd, hDC ) --> aInfo
#else
   HB_FUNC( FWDISPBEGI ) // ( hWnd, hDC ) -->aInfo
#endif
{
   HWND hWnd = ( HWND ) hb_parnl( 1 );
   HDC hDC   = ( HDC ) hb_parnl( 2 );
   HDC hDC2;
   HBITMAP hBmp, hBmpOld;
   RECT rct;

   GetClientRect( hWnd, &rct );

   hDC2    = CreateCompatibleDC( hDC );
   hBmp    = CreateCompatibleBitmap( hDC, rct.right - rct.left,
                                     rct.bottom - rct.top );
   hBmpOld = ( HBITMAP ) SelectObject( hDC2, hBmp );
   
   // we comment it out to improve painting speed
   // BitBlt( hDC2, 0, 0, rct.right, rct.bottom, hDC, 0, 0, SRCCOPY );

   #ifdef __XPP__
      #define hb_stornl( x, y, z ) STORNL( x, params, y, z )
   #endif

   hb_reta( 5 );
   hb_storvnl( ( LONG ) hWnd   , -1, 1 );
   hb_storvnl( ( LONG ) hDC    , -1, 2 );
   hb_storvnl( ( LONG ) hDC2   , -1, 3 );
   hb_storvnl( ( LONG ) hBmp   , -1, 4 );
   hb_storvnl( ( LONG ) hBmpOld, -1, 5 );
}
 

 

mas, como disse, nao manjo em prg na raiz da classe, nao sei ai o q pode ser...

 

 

Link to comment
Share on other sites

17 horas atrás, kapiaba disse:

o tempo todo estava dizendo q eh no W (WABIO) browse..hehe

 

Ja  tinha testado no X (XIS) browse, no C (ce) browse e esses nao dao o q da no Xbrowse.. mas por uma necessidade (um recurso q so tem no Wbrowse) queria resolver isso

Link to comment
Share on other sites

  • 3 weeks later...
Em 08/02/2023 at 08:29, Theotokos disse:

apresenta ai como resolveu, pode ter outros usuário com o mesmo problema algo parecido, ai ajuda tmb... vlw obgdo!!!

cara, sinceramente, nao sei exatamente o q fiz q resolveu.... 

ate site da russia entrei pra ver o diziam.... 

mas, no final, limpei a lib... fui compilando uma a uma (inclusive de terceiros) e adicionando-as (uma a uma) e no final = resolvido !

Link to comment
Share on other sites

4 horas atrás, gibaf disse:

cara, sinceramente, nao sei exatamente o q fiz q resolveu.... 

ate site da russia entrei pra ver o diziam.... 

mas, no final, limpei a lib... fui compilando uma a uma (inclusive de terceiros) e adicionando-as (uma a uma) e no final = resolvido !

->>> ate site da russia entrei pra ver o diziam
Site da Russia ?

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...