xBrowser: Is it possible to change alignment on the fly?

Post Reply
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

xBrowser: Is it possible to change alignment on the fly?

Post by Otto »

nDataStrAlign := AL_RIGHT

Is it possible to change alignment on the fly?
Thanks in advance
Otto
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post by Antonio Linares »

Otto,

Have you tried to change it and refresh the browse ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post 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
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Post 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 ) )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post by Otto »

Alignment changes but Al_right is not displayed well.
See screen:
Image
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Post by nageswaragunupudi »

Working perfectly
Regards

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

Post 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
Regards

G. N. Rao.
Hyderabad, India
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post by Otto »

Thank you Enrico.
I changed it in METHOD PaintData:
if ::bStrData != nil
cData := RTRIM( Eval( ::bStrData, Self ))
else
cData := ""
endif
Image
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post by Otto »

To nageswaragunupudi:
If I insert the method DataAlign I get all centered.
Regaqrds,
Otto
User avatar
nageswaragunupudi
Posts: 8017
Joined: Sun Nov 19, 2006 5:22 am
Location: India
Contact:

Post 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?
Regards

G. N. Rao.
Hyderabad, India
User avatar
James Bott
Posts: 4654
Joined: Fri Nov 18, 2005 4:52 pm
Location: San Diego, California, USA
Contact:

Post 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
User avatar
Otto
Posts: 4470
Joined: Fri Oct 07, 2005 7:07 pm
Contact:

Post 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
Post Reply