Page 1 of 1
Say centrado vertical
Posted: Tue Nov 29, 2016 11:33 am
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
Re: Say centrado vertical
Posted: Tue Nov 29, 2016 12:34 pm
by karinha
Re: Say centrado vertical
Posted: Tue Nov 29, 2016 1:16 pm
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
Re: Say centrado vertical
Posted: Tue Nov 29, 2016 1:18 pm
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
//----------------------------------------------------------------------------//
Re: Say centrado vertical
Posted: Tue Nov 29, 2016 3:01 pm
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
Re: Say centrado vertical
Posted: Tue Nov 29, 2016 3:09 pm
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
Re: Say centrado vertical
Posted: Wed Nov 30, 2016 4:10 am
by nageswaragunupudi
We added a new clause VCENTER to SAY command in FWH16.11