Say centrado vertical

Say centrado vertical

Postby Salvador » Tue Nov 29, 2016 11:33 am

Hola a todos,

como se debe aplicar a un SAY el estilo SS_CENTERIMAGE para que el texto quede centrado verticalmente?
He probado oSay:nStyle := nOr( oSay:nStyle, SS_CENTERIMAGE), pero para que actúe, hay que hacer oSay:Refresh() después de activar el dialogo que lo contiene.

En mi opinión el comando de definición del SAY debería incluir una clausula lVertical o lCenterV o similar, así se aplicaría el efecto al momento de crearlo.

Gracias de antemano
Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Say centrado vertical

Postby karinha » Tue Nov 29, 2016 12:34 pm

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7613
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Say centrado vertical

Postby Salvador » Tue Nov 29, 2016 1:16 pm

Gracias karinha por responder tan rápido
quizás no me he explicado bien, no me refiero a imprimir en sentido vertical sino a centrar el texto verticalmente con respecto a la altura del campo
Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Say centrado vertical

Postby nageswaragunupudi » Tue Nov 29, 2016 1:18 pm

Code: Select all  Expand view
#include "fivewin.ch"

#define SS_CENTERIMAGE      0x00000200

//----------------------------------------------------------------------------//

function SayTestDlg

   local oDlg, oSay

   DEFINE DIALOG oDlg TRUEPIXEL TITLE "SAY VCENTER"

   @ 20,20 SAY oSay PROMPT "Center" SIZE 200,100 PIXEL OF oDlg  CENTER

   if Empty( oSay:hWnd )
      oSay:nStyle := nOr( oSay:nStyle, SS_CENTERIMAGE  ) // dialogs
   else
      oSay:WinStyle( SS_CENTERIMAGE, .t. ) // windows, etc
   endif

   ACTIVATE DIALOG oDlg CENTERED ;
      ON PAINT oDlg:Box( oSay:nTop-1, oSay:nLeft-1, oSay:nBottom+1, oSay:nRight+ 1 )

return nil

//----------------------------------------------------------------------------//
 


Image
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10471
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Say centrado vertical

Postby Salvador » Tue Nov 29, 2016 3:01 pm

For me works oSay:WinStyle( SS_CENTERIMAGE, .t. ), my SAY is inside a buttonbar

Would be easier if the command SAY had a clause lCenterV or similar

Tankyou very much Mr. Rao
Saludos
Salvador
Salvador
 
Posts: 144
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Say centrado vertical

Postby nageswaragunupudi » Tue Nov 29, 2016 3:09 pm

Wherever you use, use the full code
Code: Select all  Expand view
  if Empty( oSay:hWnd )
      oSay:nStyle := nOr( oSay:nStyle, SS_CENTERIMAGE  ) // dialogs
   else
      oSay:WinStyle( SS_CENTERIMAGE, .t. ) // windows, etc
   endif
 

That takes care of all situations and saves your time in searching for solution.

Yes we are considering providing additional parameter for Say.

When you want to paint on buttonbar better to use oBar:bPainted than use SAY. Because say's transparency does not work on all cases of gradients.

Code: Select all  Expand view

oBar:bPainted := { || oBar:SayText( cText, aRect ) }
 

This paints the text centered in the aRect (you can control alignment too)
For example see how text is painted on buttonbar in this post
viewtopic.php?f=3&t=33237
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10471
Joined: Sun Nov 19, 2006 5:22 am
Location: India

Re: Say centrado vertical

Postby nageswaragunupudi » Wed Nov 30, 2016 4:10 am

We added a new clause VCENTER to SAY command in FWH16.11
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10471
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin for Harbour/xHarbour

Who is online

Users browsing this forum: Enrico Maria Giordano, Google [Bot] and 50 guests