Page 1 of 1
xBrowser: Is it possible to change alignment on the fly?
Posted: Sat Dec 15, 2007 12:35 am
by Otto
nDataStrAlign := AL_RIGHT
Is it possible to change alignment on the fly?
Thanks in advance
Otto
Posted: Sat Dec 15, 2007 10:43 am
by Antonio Linares
Otto,
Have you tried to change it and refresh the browse ?
Posted: Sat Dec 15, 2007 9:44 pm
by Otto
Thank you. Yes I tried with refresh().
Here is my code:
func f_DataStrAlign(r,c,f,o)
oBrw:nRowDividerStyle := 0 // I put this to proof that refresh is working
oBrw:aCols[ o:nPos ]:nDataStrAlign := AL_RIGHT
oBrw:refresh()
return nil
The text does not move.
Regards,
Otto
Posted: Mon Dec 17, 2007 10:30 am
by Antonio Linares
Otto,
Try it this way:
oCol = oBrw:aCols[ o:nPos ]
oCol:nDataStrAlign := AL_RIGHT
oCol:nDataStyle := oCol:DefStyle( oCol:nDataStrAlign, ( oCol:oBrw:nDataLines == 1 ) )
Posted: Mon Dec 17, 2007 1:13 pm
by Otto
Alignment changes but Al_right is not displayed well.
See screen:
Posted: Mon Dec 17, 2007 1:30 pm
by Enrico Maria Giordano
Try to RTrim() the column data.
EMG
Posted: Mon Dec 17, 2007 1:59 pm
by nageswaragunupudi
Working perfectly
Posted: Mon Dec 17, 2007 2:08 pm
by nageswaragunupudi
Code: Select all
METHOD DataAlign( nAlign ) CLASS TXBrwColumn
if ! ( ::nDataStrAlign == nAlign ) // tolerate nil param
::nDataStrAlign := AL_RIGHT
::nDataStyle := ::DefStyle( ::nDataStrAlign, ( ::oBrw:nDataLines == 1 ) )
endif
RETURN ::nDataStrAlign
Posted: Mon Dec 17, 2007 2:40 pm
by Otto
Thank you Enrico.
I changed it in METHOD PaintData:
if ::bStrData != nil
cData := RTRIM( Eval( ::bStrData, Self ))
else
cData := ""
endif
Posted: Mon Dec 17, 2007 2:42 pm
by Otto
To nageswaragunupudi:
If I insert the method DataAlign I get all centered.
Regaqrds,
Otto
Posted: Mon Dec 17, 2007 2:51 pm
by nageswaragunupudi
Mr Otto
Obviously the values should be rtimmed for right justification. My proposed method is only for changing justification on the fly.
If you change the paint method you may like to cover the cases of left, center and riight justifcations and all other possibilities. For non left justified painting probably alltrim(,,,) may be better, We should also keep in mind multiple line painting. Paint is a very generic method. Should we change this paint method or specify bStrData appropriately?
Posted: Mon Dec 17, 2007 9:01 pm
by James Bott
It is most common to right justify numbers and left justify text in tables. Numbers need to be right justified to make the decimals aline. I can't think of a good reason to right justify text.
James
Posted: Mon Dec 17, 2007 9:47 pm
by Otto
Hello James,
to learn to use xBrowser I created a little tool xBTool to build a xBrowser visually.
There I want to click on the header and select if the column should be right aligned or left.
Doing this I saw that text fields do not align accurately. Therefore I pointed this problem out.
Regards,
Otto