Say centrado vertical

Post Reply
Salvador
Posts: 142
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Say centrado vertical

Post by Salvador »

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
User avatar
karinha
Posts: 4882
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Say centrado vertical

Post by karinha »

João Santos - São Paulo - Brasil
Salvador
Posts: 142
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Say centrado vertical

Post by Salvador »

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
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Say centrado vertical

Post by nageswaragunupudi »

Code: Select all

#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
Salvador
Posts: 142
Joined: Sun Dec 18, 2005 3:18 pm
Location: España

Re: Say centrado vertical

Post by Salvador »

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
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Re: Say centrado vertical

Post by nageswaragunupudi »

Wherever you use, use the full code

Code: Select all

   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

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
http://forums.fivetechsupport.com/viewt ... =3&t=33237
Regards

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

Re: Say centrado vertical

Post by nageswaragunupudi »

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

G. N. Rao.
Hyderabad, India
Post Reply