FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin for Harbour/xHarbour Display the text vertically
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Display the text vertically
Posted: Thu Dec 03, 2015 08:36 AM

Hello !

Is it possible in the cell of xBrowse to display the text vertically ?

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Display the text vertically
Posted: Thu Dec 03, 2015 01:02 PM


Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   local oWnd, oFont, oVert, oBrw
   local aData := { { "One", "Five Win" }, { "Two", "Hello World" }}

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
   DEFINE FONT oVert NAME "TAHOMA" SIZE 0,-12 NESCAPEMENT 900

   DEFINE WINDOW oWnd
   oWnd:SetFont( oFont )

   @ 0,0 XBROWSE oBrw OF oWnd DATASOURCE aData AUTOCOLS ;
      HEADERS "First", "Second" ;
      LINES NOBORDER

   WITH OBJECT oBrw:aCols[ 1 ]
      :oHeaderFont   := oVert
      :oDataFont     := oVert
   END
   oBrw:nRowHeight   := 100

   oBrw:CreateFromCode()
   oWnd:oClient := oBrw

   ACTIVATE WINDOW oWnd CENTERED
   RELEASE FONT oFont, oVert

return nil

I have to agree, the vertical alignment of the text in the cells is not correct.
We need to improve this.

Please also let us know the version of FWH you are using.
Regards



G. N. Rao.

Hyderabad, India
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Display the text vertically
Posted: Thu Dec 03, 2015 01:24 PM

I think it does not take vertical text alignment. In the header and data . It is possible to do so ?

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Display the text vertically
Posted: Thu Dec 03, 2015 01:27 PM
horacio wrote:I think it does not take vertical text alignment. In the header and data . It is possible to do so ?

As I said, we need to do some improvements and we shall do.
But basically it is possible and easy to paint vertical text in headers and cells.
Regards



G. N. Rao.

Hyderabad, India
Posts: 1364
Joined: Wed Jun 21, 2006 12:39 AM
Re: Display the text vertically
Posted: Thu Dec 03, 2015 02:14 PM

Sorry , I had not fully read the post .

Saludos

Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Display the text vertically
Posted: Thu Dec 03, 2015 08:42 PM

Thank, Mr. Rao

FWH1507/BCC7/xHarbour

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Display the text vertically
Posted: Fri Dec 04, 2015 02:14 AM
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   local oWnd, oFont, oVert, oBrw
   local aData := { { "One", "Five Win" }, { "Two", "Hello World" }}

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
   DEFINE FONT oVert NAME "TAHOMA" SIZE 0,-12 NESCAPEMENT 900

   DEFINE WINDOW oWnd
   oWnd:SetFont( oFont )

   @ 0,0 XBROWSE oBrw OF oWnd DATASOURCE aData AUTOCOLS ;
      HEADERS "First", "Second" ;
      LINES NOBORDER

   WITH OBJECT oBrw:aCols[ 1 ]
      :oHeaderFont   := oVert
      :oDataFont     := oVert
      :bPaintText    := { | oCol, hDC, cData, aRect, aColors, lHighLite, lSelected | ;
                          PaintText( oCol, hDC, cData, aRect, aColors, lHighLite, lSelected ) }
   END
   oBrw:nRowHeight   := 80

   oBrw:CreateFromCode()
   oWnd:oClient := oBrw

   ACTIVATE WINDOW oWnd CENTERED
   RELEASE FONT oFont, oVert

return nil

#define DT_CENTER                   0x00000001

func PaintText( Self, hDC, cData, aRect, aColors, lHighLite, lSelected )

   local nTextWidth     := ::oBrw:GetWidth( cData, ::oDataFont )
   local nBottom

   nBottom  := aRect[ 3 ] - ( aRect[ 3 ] - aRect[ 1 ] - nTextWidth ) / 2
   DrawTextEx( hDC, cData, { nBottom, aRect[ 2 ], aRect[ 1 ], aRect[ 4 ] }, DT_CENTER )

return nil


Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Display the text vertically
Posted: Fri Dec 04, 2015 06:23 AM

FWH15.10 now paints vertical text in cells honoring the nDataStrAlign.

Regards



G. N. Rao.

Hyderabad, India
Posts: 1392
Joined: Mon May 14, 2007 09:49 AM
Re: Display the text vertically
Posted: Fri Dec 04, 2015 07:06 AM

This is what we need. Thank, Mr. Rao !

Is it possible in XBrowse horizontal merging of cells (a la Excel) ?

Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Display the text vertically
Posted: Fri Dec 04, 2015 07:23 AM
Natter wrote:
Is it possible in XBrowse horizontal merging of cells (a la Excel) ?


No
Only vertical merging.
Regards



G. N. Rao.

Hyderabad, India
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Re: Display the text vertically
Posted: Thu Sep 10, 2020 02:08 PM
Good mornign Mr. Rao, I know this is an old post, but when trying to use it I get the next error:
Code (fw): Select all Collapse
Application
===========
   Path and name: C:\xDevStudio\Projects\Tubelite\Tubelite.EXE (32 bits)
   Size: 9,551,360 bytes
   Compiler version: Harbour 3.2.0dev (r1603082110)
   FiveWin  version: FWH 19.12
   C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
   Windows version: 6.2, Build 9200 

   Time from start: 0 hours 0 mins 5 secs 
   Error occurred at: 10/09/2020, 09:06:37
   Error description: Error BASE/1003  No existe la variable: OVERT

Stack Calls
===========
   Called from: C:\xDevStudio\Projects\Tubelite\Source\Tubelite.prg => DIRECTORIO( 6915 )
   Called from: C:\xDevStudio\Projects\Tubelite\Source\Tubelite.prg => (b)DEFINE_RIBBON( 1558 )
   Called from: .\source\classes\TRBTN.PRG => TRBTN:CLICK( 717 )
   Called from: .\source\classes\TRBTN.PRG => TRBTN:LBUTTONUP( 917 )
   Called from: .\source\classes\CONTROL.PRG => TCONTROL:HANDLEEVENT( 1791 )
   Called from: .\source\classes\TRBTN.PRG => TRBTN:HANDLEEVENT( 1575 )
   Called from: .\source\classes\WINDOW.PRG => _FWH( 3559 )
   Called from:  => WINRUN( 0 )
   Called from: .\source\classes\WINDOW.PRG => TWINDOW:ACTIVATE( 1097 )
   Called from: C:\xDevStudio\Projects\Tubelite\Source\Tubelite.prg => MAIN( 494 )


this is teh part on the code:

Code (fw): Select all Collapse
    WITH OBJECT oBrw:aCols[ 1 ]
        :oDataFont     := oVert
        :bPaintText    := { | oCol, hDC, cData, aRect, aColors, lHighLite, lSelected | ;
                          PaintText( oCol, hDC, cData, aRect, aColors, lHighLite, lSelected ) }
    END
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Display the text vertically
Posted: Thu Sep 10, 2020 04:06 PM

The above program compiles and executes perfectly here.
Please check if you copied the program correctly.

Regards



G. N. Rao.

Hyderabad, India
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Display the text vertically
Posted: Thu Sep 10, 2020 04:10 PM
This was the proposed program for very old versions.
For all recent versions, this is extremely simple.

Simple assignment of vertical font is enough.

This sample works.

Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   local oWnd, oFont, oVert, oBrw
   local aData := { { "One", "Five Win" }, { "Two", "Hello World" }}

   DEFINE FONT oFont NAME "TAHOMA" SIZE 0,-12
   DEFINE FONT oVert NAME "TAHOMA" SIZE 0,-12 NESCAPEMENT 900

   DEFINE WINDOW oWnd
   oWnd:SetFont( oFont )

   @ 0,0 XBROWSE oBrw OF oWnd DATASOURCE aData AUTOCOLS ;
      HEADERS "First", "Second" ;
      LINES NOBORDER

   WITH OBJECT oBrw:aCols[ 1 ]
      :oHeaderFont   := oVert
      :oDataFont     := oVert
   END
   oBrw:nRowHeight   := 80

   oBrw:CreateFromCode()
   oWnd:oClient := oBrw

   ACTIVATE WINDOW oWnd CENTERED
   RELEASE FONT oFont, oVert

return nil
Regards



G. N. Rao.

Hyderabad, India
Posts: 131
Joined: Tue Dec 26, 2006 04:50 PM
Re: Display the text vertically
Posted: Thu Sep 10, 2020 04:42 PM
You are totally right Mr. Rao, I failed to expalin correctly what I wanted.
The first column of my xbrowse has the branch the employees are assigned to, and i have it merged, what I really wanted to achieve was to show the text in vertical orientation in to the merged cells, and the example you provide shows the vertical text in one row only.

I hope this can be achieved, only for aesthetic reasons
Posts: 1487
Joined: Tue Jun 14, 2016 07:51 AM
Re: Display the text vertically
Posted: Thu Sep 10, 2020 09:00 PM
mariordz wrote:You are totally right Mr. Rao, I failed to expalin correctly what I wanted.
The first column of my xbrowse has the branch the employees are assigned to, and i have it merged, what I really wanted to achieve was to show the text in vertical orientation in to the merged cells, and the example you provide shows the vertical text in one row only.

I hope this can be achieved, only for aesthetic reasons


If you use CRLF (Line Feed) then I think you got what you need.

From Mr. Rao's sample (above)

local aData := { { "One"+CRLF+"TWO", "Five Win" }, { "Two"+CRLF+"DRIE", "Hello World" }}
Marc Venken

Using: FWH 23.08 with Harbour

Continue the discussion