Page 1 of 3

Para Antonio - Como rolar header e Footer de THEADER

Posted: Thu Mar 23, 2006 9:36 pm
by Rossine
Olá Antonio,

Estou a fazer algumas mudanças na classe WBROWSE e eu gostaria de saber se você poderia me dar uma dica de como fazer o Header e Footer rolar na tela quando eu clicar no objeto SCROLL.

Eu estou usando a classe THEADER de FWH.

Desde já agradeço qualquer ajuda :-)

Obrigado,

Rossine.

Image

Posted: Thu Mar 23, 2006 11:50 pm
by Silvio
Rossine,
How have create light header to wbrowse ?

Regards

Posted: Fri Mar 24, 2006 1:10 am
by Francisco Horta
Rossine, como hiciste para poder juntar theader y wbrowse, puedes poner el ejemplo? si modificaste la clase me la pudieras enviar?
saludos
Pako

Posted: Fri Mar 24, 2006 9:10 am
by Antonio Linares
Rossine,

Prueba a cambiar la DATA nLeft del header:

oHeader:nLeft -= ...

Posted: Fri Mar 24, 2006 11:05 am
by Rossine
Olá Antonio,

nLeft já é igual a 0 se se eu subtrair está ficando negativo e o Header/Footer está sumindo da tela :(

Pako e Silvio, assim que eu conseguir fazer funcionar postarei aqui um exemplo ok ? :D

Antonio, alguma outra idéia ?

Obrigado,

Rossine.

Posted: Fri Mar 24, 2006 12:25 pm
by Antonio Linares
Rossine,

> nLeft já é igual a 0 se se eu subtrair está ficando negativo e o Header/Footer está sumindo da tela

No entiendo lo que dices. Puedes decirlo en inglés ? O explicarlo un poco más ?

Posted: Fri Mar 24, 2006 12:56 pm
by Rossine
Olá Antonio,

Excuse I am using me a translator :wink:

nLeft already is like 0 itself be subtracted I is stayed negative film strip and the Header/Footer is disappearing of the screen

See this image:

Image

Talvez isto seria a solução:

Code: Select all

The HD_LAYOUT structure contains information used to set the size and position of a header control. 

typedef struct _HD_LAYOUT {  // hdl  
    RECT FAR*      prc;  
    WINDOWPOS FAR* pwpos; 
} HD_LAYOUT; 
 

Members

prc

Pointer to a RECT structure that contains the coordinates of a rectangle that the header control is to occupy.

pwpos

Pointer to a WINDOWPOS structure that receives information about the appropriate size and position of the header control.

 

Remarks

This structure is used with the HDM_LAYOUT message.
Se for isto a solução, como faço para inseri-lo em theaders.c ?

Gracias,

Rossine.

Posted: Sat Mar 25, 2006 7:56 am
by Antonio Linares
Rossine,

Please add this code to theaders.c:

Code: Select all

#ifdef __HARBOUR__
   CLIPPER HEADERLAYOUT( PARAMS ) // hWnd [, aRect] --> aInfo
#else   
   CLIPPER HEADERLAYO( PARAMS ) // UT()
#endif
{
   RECT prc;
   WINDOWPOS pwpos;
   HDLAYOUT hdlayout;

   hdlayout.prc = &prc;
   hdlayout.pwpos = &pwpos;

   if( PCOUNT() > 1 )
   { 
      hdlayout.prc->left   = _parnl( 2, 1 );
      hdlayout.prc->top    = _parnl( 2, 2 );
      hdlayout.prc->right  = _parnl( 2, 3 );
      hdlayout.prc->bottom = _parnl( 2, 4 );
   }   
      	
   SendMessage( ( HWND ) _parnl( 1 ), ( LONG ) HDM_LAYOUT, 0, ( LPARAM ) &hdlayout );
   
   _reta( 7 );
   _stornl( ( LONG ) hdlayout.pwpos->hwnd, -1, 1 );
   _stornl( ( LONG ) hdlayout.pwpos->hwndInsertAfter, -1, 2 );
   _storni( hdlayout.pwpos->x, -1, 3 );
   _storni( hdlayout.pwpos->y, -1, 4 );
   _storni( hdlayout.pwpos->cx, -1, 5 ); 	   
   _storni( hdlayout.pwpos->cy, -1, 6 );
   _stornl( hdlayout.pwpos->flags, -1, 7 );
}    	   

Posted: Sat Mar 25, 2006 7:59 am
by Antonio Linares
Rossine,

Also, this information may be usefull:
>>
If you want to use the HDM_LAYOUT message to set the initial size and position of a header window, you should set the initial visibility state of the window so that it is hidden (by specifying the HDS_HIDDEN style). Once you have created the window and used the HDM_LAYOUT message to get the size and position values, you can call the SetWindowPos function to set the new size, position, and visibility state.
>>

Posted: Sat Mar 25, 2006 3:36 pm
by Rossine
Olá Antonio,

Funcionou 1000% :D :D :D :D :D

Veja o que tive que fazer:

Code: Select all


**************
function ROLAR( cLado )
**************

if cLado = "D"  && Rolar para direita
   nPos += 10
else                && Senão para a esquerda
   nPos -= 10
endif

SetWindowPos( oHeader:hWnd, 0, 40, nPos, 1000, 40, SWP_FRAMECHANGED )

return NIL

Veja:

Image

Mil Gracias Maestro :lol:

Saludos,

Rossine.

Posted: Sat Mar 25, 2006 4:36 pm
by Taiwan
Hi Rossine,

Very nice.
Could you share this code for us?

Regards,

Richard

Posted: Sat Mar 25, 2006 4:56 pm
by Rossine
Olá Richard,

Code: Select all

SET PORTUGUESE ON

Assim que eu tiver concluído as mudanças, irei compartilhar com todos os interessados ok ?  :D 

Abraços,

Rossine.

Code: Select all

SET ENGLISH ON

Like this that I will have concluded the changes, I am going to share with everybody them interested ok?   :D 

With best regards,

Rossine.

Posted: Sat Mar 25, 2006 5:19 pm
by Francisco Horta
Hola rossine,
Pudieras compartir la clase modificada para usarla con wbrowse y el ejemplo, creo que a muchos nos vendria de perlas... :D
por cierto, felicidades que buen trabajo...
ssalu2
pako

Posted: Sat Mar 25, 2006 9:11 pm
by Rossine
Ola Pako,

Assim que possível as modificações estiverem prontas postarei o código fonte para todos ok ?

Vejam como está ficando :wink:

Image


Abraços a todos,

Rossine.

Posted: Sun Mar 26, 2006 1:48 am
by Taiwan
Hola rossine,

Thank you so much.
Power user for us.

Regards,

Richard