FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour No pinta los acentos del día de la semana
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 11:14 AM
Hola, estoy siguiendo el ejemplo de outlook calendar del foro ingles ( http://forums.fivetechsupport.com/viewtopic.php?f=3&t=20732) ya lo compilo bien y me muestra todo en pantalla sin errores, pero cuando intento que todo el texto me lo mande en castellano (Nombre del día de la semana, nombre del mes...) me aparecen o desaparecen símbolos. Así el sábado me lo muestra sin la a acentuada "S bado" el miércoles como "mielcoles"... Eso sí la traducción es la correcta pero parece que los codigos de pagina no son correctos. Lo que he cambiado para que aparezca en castellano es lo siguiente en sample01.prg:
Code (fw): Select all Collapse
REQUEST DBFCDX
REQUEST HB_LANG_ES            // Que todos los mensajes me los saque en español
REQUEST HB_CODEPAGE_ESWIN     // Los codigos de pagina tambien en español

function Main()
   
   HB_LANGSELECT( 'ES' )       //Selecciona lenguaje español
   HB_SETCODEPAGE( 'ESWIN' )   //Selecciona el codigo de pagina español
   
   SET DATE FORMAT "MM/DD/YYYY"
   SET DELETE ON

   SampleCalex():New()

return nil


Solo he añadido el soporte harbour para castellano y he hecho pruebas anotando "sábado" en todos los días y funciona. Parece que el problema lo genera la función DrawTextTransparent( hDC, cText , aArea, nStyle ) del método siguiente:
Code (fw): Select all Collapse
//----------------------------------------------------------------------------//
// all header will be painted over nTopMargin ( nTopMargin - nDNameHeight )
//
// ***************** > Header
// ----------------- > TopMargin
//
METHOD PaintHeader( hDC ) CLASS TMonthView

   local dFirstDateWeek := ::dDate - DoW( ::dDate ) + 1
   local n, nStyle
   local aArea
   local cText, nOldClr
   local aCoor

   nStyle = nOR( DT_SINGLELINE, DT_CENTER, DT_VCENTER )

   for n = 0 to 6
      aCoor = ::GetCoorFromPos( 1, n + 1 )
      aArea = { ::nTopMargin - ::nDNameHeight, aCoor[ 2 ], ::nTopMargin, aCoor[ 2 ] + aCoor[ 3 ] }
      cText = CDoW( dFirstDateWeek + n )
      if aCoor[ 3 ] < 100
        cText = SubStr( cText, 1, 3 )
        endif
        nOldClr  = SetTextColor( hDC, ::nClrText )
      DrawTextTransparent( hDC, cText , aArea, nStyle )
      SetTextColor( hDC, nOldClr )
   next

return ni


Alguna pista?

PD.: Enhorabuena a Daniel y resto de creadores puesto que es una magnífica herramienta.

Grácias
Saludos



Andrés González desde Mallorca
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 11:23 AM
Creo que el error debe ser de codepage, ya que si pongo "Sábado" como literal lo muestra bien, es cuando me devuelve el día de la semana con CDOW().
Code (fw): Select all Collapse
//----------------------------------------------------------------------------//
// all header will be painted over nTopMargin ( nTopMargin - nDNameHeight )
//
// ***************** > Header
// ----------------- > TopMargin
//
METHOD PaintHeader( hDC ) CLASS TMonthView

   local dFirstDateWeek := ::dDate - DoW( ::dDate ) + 1
   local n, nStyle
   local aArea
   local cText, nOldClr
   local aCoor

   nStyle = nOR( DT_SINGLELINE, DT_CENTER, DT_VCENTER )

   for n = 0 to 6
      aCoor = ::GetCoorFromPos( 1, n + 1 )
      aArea = { ::nTopMargin - ::nDNameHeight, aCoor[ 2 ], ::nTopMargin, aCoor[ 2 ] + aCoor[ 3 ] }
      cText = "Sábado" //CDoW( dFirstDateWeek + n ) <<<<<<<<<<<<<<<<<<<<<
      if aCoor[ 3 ] < 100
        cText = SubStr( cText, 1, 3 )
        endif
        nOldClr  = SetTextColor( hDC, ::nClrText )
      DrawTextTransparent( hDC, cText , aArea, nStyle )
      SetTextColor( hDC, nOldClr )
   next

return ni
Saludos



Andrés González desde Mallorca
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 12:30 PM

Andres

usa
REQUEST HB_LANG_ESWIN
y
HB_LANGSELECT( 'ESWIN' )

Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 12:48 PM

No me funciona con tan solo eso que me has puesto, me pone invalid language lo he podido solucionar en cada linea que aparece CDOW() de la siguiente forma:

cText = OEMTOANSI(CDoW( dFirstDateWeek + n ))

Manteniendo la selección del lenguaje como he dicho al principio.

Saludos



Andrés González desde Mallorca
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 01:05 PM
Andres

Este ejemplo funciona bien para mi, sin cambiar el codigo de la clase



para descargar el EXE
http://www.sitasoft.net/fivewin/samples/fecha.zip

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

REQUEST HB_LANG_ESWIN
REQUEST HB_CODEPAGE_ESWIN

FUNCTION Main()
   local dDate := Date() -  DoW( Date() ) + 1
   local n, cText := ""

   HB_LANGSELECT( 'ESWIN' )
   HB_SETCODEPAGE( 'ESWIN' )
   
   for n = 0 to 6
      cText += CDoW( dDate + n ) + CRLF
   next 
   
   ? cText
   
RETURN NIL
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 01:08 PM

Disculpas Daniel, sí funciona como tu has dicho. Tenia en el Tmonthv.prg tambien definido el lenguaje y me volvía otra vez a lo mismo. Ahora lo he puesto solo en sample01.prg y va bien.

Grácias.

Saludos



Andrés González desde Mallorca
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 01:16 PM

Daniel, hay forma de que en el calendario (tmonthv.prg) el primer día de la semana sea el lunes ? En el ejemplo aparece siempre en domingo.

Saludos

Saludos



Andrés González desde Mallorca
Posts: 2365
Joined: Wed Nov 02, 2005 11:46 PM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 01:28 PM

Andres

La clase aun no esta terminada, libere el codigo para ver si alguien se entuciasma a ayudar...

Gracias

Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 02:16 PM
Daniel Garcia-Gil wrote:Andres

La clase aun no esta terminada, libere el codigo para ver si alguien se entuciasma a ayudar...

Gracias


Hola Daniel,

Donde esta el codigo de esa clase ?
Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/
Posts: 610
Joined: Wed Oct 19, 2005 08:20 PM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 04:40 PM
Un saludo,

Manuel



xH 1.2.3, FWH 23.07 32 bits, BC++ 7.4, xVerce CW 1.0, PellesC
Posts: 401
Joined: Thu Oct 06, 2005 10:15 PM
Re: No pinta los acentos del día de la semana
Posted: Thu Feb 03, 2011 11:25 PM

Gracias.... :)

Saludos,



Pablo Alberto Vidal

/*

------------------------------------------------------

Harbour 3.2.0, Fivewin 17.02, BCC7

------------------------------------------------------

*/

Continue the discussion