FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Problemas con tooltips en rebars/toolbars.
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Wed Nov 05, 2008 06:00 PM
Me ha ocurrido algo extra帽o. Cuando uso una toolbar dentro de una Rebar, los tooltips muestran correctamente las letras acentuadas, tal como en


Pero en otro programa hago algo parecido, usando el mismo FW y el mismo Harbour, y obtengo resultados diferentes


[/img]

Las diferencias son el tama帽o de los botones, y que la rebar va en un di谩logo en lugar de una windows, pero no me doy cuenta por donde vienen los tiros.

Alguna sugerencia?

Un saludo

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 883
Joined: Tue Oct 11, 2005 11:57 AM
Problemas con tooltips en rebars/toolbars.
Posted: Wed Nov 05, 2008 06:32 PM

Carlos...

Las preguntas obligadas..

Son el mismo Compilador y version de FWH ?
Usas las mismas libs de terceros ?
Lo ejecutas en el mismo PC ?
No tienes ninguna llamada a ANSITOOEM o a OEMTOANSI dentro del PRG ?
Defines el lenguaje en ambas aplicaciones ?

.. y por ultimo.. un pedazo del codigo de ambas llamadas ..para mirarlo un poko y ver por donde va el error.. eso..

Desde Chile
Adolfo

;-) Ji,ji,ji... buena la cosa... "all you need is code"

http://www.xdata.cl - Desarrollo Inteligente
----------
Asus TUF F15, 32GB Ram, 2 * 1 TB NVME M.2, GTX 1650
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 08:31 AM

Hola Adolfo,

Como hab铆a puesto en el primer mensaje, el mismo FW (7.07), el mismo Harbour (8.08).
Casi no uso libs de terceros excepto FW y e Image2PDF.
Y s铆, todo compilado y ejecutado en el mismo ordenador, con los mismos directorios.
Y como no uso AnsiToOem ni OemToAnsi desde hace unos cuantos a帽os desde que uso TextPad, de ah铆 me surgi贸 la duda. El problema es SOLO CON LOS TOOLTIPS DE LA REBAR, en el resto no tengo el m谩s m铆nimo inconveniente, ni con captions ni nada que se le parezca, y eso desde hace bastantes a帽os.
Lo que puede ser, que no he probado y que es algo que no hago nunca, es definir el lenguaje. Siempre uso el lenguaje por defecto del compilador, cuando surgi贸 la posibilidad de especificar el charset no lo us茅 por temor a no ser compatible con los programas que ya estaba usando y, fundamentalmente, con el formato de los datos preexistentes en las bases.

Pero el punto es que en ninguno de ambos defino el Charset, y de hecho un proyecto es un subproyecto del otro, es decir que estan juntos hasta en el disco duro.

Seguir茅 buscando a ver cual puede ser el orgen del problema. El tema de los tooltips en un poco "caja negra", las funciones son parte del bloque cerrado de FW, voy a seguir haciendo pruebas a ver que puede ser...

Gracias por responder. Un saludo desde el otro lado del charco,

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 08:52 AM
Carlos,

Este es el c贸digo que se usa para asignar los tooltips de las toolbars:
HB_FUNC( TTNSETTEXT ) // pNMTTDISPINFO, cTooltipText
{
   LPNMTTDISPINFO pti = ( LPNMTTDISPINFO ) hb_parnl( 1 );

   MultiByteToWideChar( CP_OEMCP, MB_PRECOMPOSED,
                        ( LPCSTR ) hb_parc( 2 ), -1, ( LPWSTR ) pti->szText,
                        hb_parclen( 2 ) + 1 );

   pti->hinst = NULL;
   pti->lpszText = NULL;
   pti->uFlags = 0;
}

Por si lo quieres modificar 贸 usar de otra forma.

Lo que necesites solo tienes que pedirlo :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 08:56 AM
Perd贸n, me hab铆as pedido c贸digo.

   DEFINE DIALOG oDlg TITLE "Atisa" FROM 0, 0 TO 480, 800 PIXEL FONT oFont
      oDlg:lHelpIcon := .f.

   @ 0, 0 BROWSE oBrw SIZE 100, 100 ALIAS "M347_BC" OF oDlg FONT oFont

   ADD COLUMN TO oBrw HEADER "C贸digo"        DATA {|| M347_BC->CodigoP } ALIGN DT_CENTER
   ADD COLUMN TO oBrw HEADER "NIF"           DATA {|| M347_BC->NIF     } ALIGN DT_CENTER 
   ADD COLUMN TO oBrw HEADER "Op."           DATA {|| M347_BC->ClaveOp } ALIGN DT_CENTER 
   ADD COLUMN TO oBrw HEADER "Ignora?"       DATA {|| M347_BC->Ignorar } ALIGN DT_CENTER 
   ADD COLUMN TO oBrw HEADER "Importe"       DATA {|| M347_BC->Importe } ALIGN DT_RIGHT
   ADD COLUMN TO oBrw HEADER "Computable"    DATA {|| M347_BC->Importe } ALIGN DT_RIGHT
   ADD COLUMN TO oBrw HEADER "Seguro"        DATA {|| M347_BC->OpSeguro } ALIGN DT_CENTER
   ADD COLUMN TO oBrw HEADER "Arrend.?"      DATA {|| M347_BC->ArrendLoc } ALIGN DT_CENTER
   ADD COLUMN TO oBrw HEADER "Concepto"      DATA {|| M347_BC->Concepto }
   ADD COLUMN TO oBrw HEADER "Fecha"         DATA {|| M347_BC->Fecha } ALIGN DT_CENTER
   ADD COLUMN TO oBrw HEADER "Contrapartida" DATA {|| M347_BC->Contrap } ALIGN DT_CENTER
   ADD COLUMN TO oBrw HEADER "Apunte"        DATA {|| M347_BC->Apunte }  ALIGN DT_RIGHT
   oBrw:nHeightCell += 6
   oBrw:nHeightHead += 6

   ACTIVATE DIALOG oDlg CENTERED ON INIT ( CreaBarra( oDlg ), oDlg:SetControl( oBrw ) )

Return NIL

FUNCTION CreaBarra( oDlg )
   Local oImageList, oBar

   DEFINE IMAGELIST oImageList SIZE 16, 16

   ILDESTROY( oImageList:hImageList )
   oImageList:hImageList:= ILCREATE32( 16, 16 )
   oImageList:Add( TBitmap():Define( ,"..\Icons16\check2.bmp", oDlg ) )
   oImageList:Add( TBitmap():Define( ,"..\Icons16\document_add.bmp", oDlg ) )
   oImageList:Add( TBitmap():Define( ,"..\Icons16\document_preferences.bmp", oDlg ) )
   oImageList:Add( TBitmap():Define( ,"..\Icons16\document_delete.bmp", oDlg ) )
   oImageList:Add( TBitmap():Define( ,"..\Icons16\replace2.bmp", oDlg ) )
   oImageList:Add( TBitmap():Define( ,"..\Icons16\document_gear.bmp", oDlg ) )
   // oImageList:Add( TBitmap():Define( ,"..\Icons16\document_exchange.bmp", oDlg ) )


   oReBar = TReBar():New( oDlg )

   DEFINE TOOLBAR oBar OF oReBar SIZE 16,20  IMAGELIST oImageList

   oReBar:InsertBand( oBar )

   oBar:nHeight -= 2

   DEFINE TBBUTTON OF oBar ;
      ACTION  oDlg:End() ;
      TOOLTIP 'Salir'

   DEFINE TBSEPARATOR OF oBar

   DEFINE TBBUTTON OF oBar ;
      MESSAGE  "A帽adir" ;
      ACTION  oDlg:End() ;
      TOOLTIP 'A帽adir贸'

   DEFINE TBBUTTON OF oBar ;
      ACTION  oDlg:End() ;
      TOOLTIP 'Incluir'

   DEFINE TBBUTTON OF oBar ;
      ACTION  oDlg:End() ;
      TOOLTIP 'Excluir'

   DEFINE TBSEPARATOR OF oBar

   DEFINE TBBUTTON OF oBar ;
      ACTION  GenMov347BC( oDlg ) ;
      TOOLTIP 'Rec谩lcular'

   DEFINE TBBUTTON OF oBar ;
      ACTION  oDlg:End() ;
      TOOLTIP 'Generar registros'

Return NIL


Ojo! Los herrores hort贸graficos son para pruebas.

   DEFINE ICON oIcon RESOURCE 1

   DEFINE WINDOW oWnd TITLE "Atisa" MENU MainMenu() ICON oIcon FROM 0, 0 TO 480, 800 PIXEL

   DEFINE IMAGELIST oImageList SIZE 32, 32

   ILDESTROY( oImageList:hImageList )
   oImageList:hImageList:= ILCREATE32( 32, 32 )
   oImageList:Add( TBitmap():Define( "SALIR32"    ,, oWnd ) )
   oImageList:Add( TBitmap():Define( "CLIENTES32" ,, oWnd ) )
   oImageList:Add( TBitmap():Define( "PROVEED32"  ,, oWnd ) )
   oImageList:Add( TBitmap():Define( "IVA32"      ,, oWnd ) )
   oImageList:Add( TBitmap():Define( "VENTAS32"   ,, oWnd ) )
   oImageList:Add( TBitmap():Define( "COMPRAS32"  ,, oWnd ) )
   oImageList:Add( TBitmap():Define( "TESORERIA32",, oWnd ) )
   oImageList:Add( TBitmap():Define( "CONCEPTO32" ,, oWnd ) )

   oReBar = TReBar():New( oWnd )

   DEFINE TOOLBAR oBar OF oReBar SIZE 40, 52 IMAGELIST oImageList

   oReBar:InsertBand( oBar )

   oBar:nHeight -= 2

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Salir" ;
      ACTION  oWnd:End() ;
      TOOLTIP 'Salir del Programa'

   DEFINE TBSEPARATOR OF oBar

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Clientes" ;
      ACTION  ClientesBrowse() ;
      TOOLTIP 'Mantenimiento de Clientes'

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Proveedores" ;
      ACTION  ProveedoresBrowse() ;
      TOOLTIP 'Mantenimiento de Proveedores'

   DEFINE TBSEPARATOR OF oBar

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Tipos de IVA" ;
      ACTION  TipoIVABrowse() ;
      TOOLTIP 'Mantenimiento de Tipos de IVA'

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Ventas" ;
      ACTION  VentasBrowse() ;
      TOOLTIP 'Facturas de Venta'

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Compras" ;
      ACTION  ComprasBrowse() ;
      TOOLTIP 'Facturas de Compra'

   DEFINE TBSEPARATOR OF oBar

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Tesoreria" ;
      ACTION  FondosBrowse() ;
      TOOLTIP 'Gesti贸n de Cuentas de Tesorer铆a'

   DEFINE TBBUTTON OF oBar ;
      PROMPT "Conceptos" ;
      ACTION  ConceptoBrowse() ;
      TOOLTIP 'Gesti贸n de Conceptos de Tesorer铆a'

   SET MESSAGE OF oWnd TO "Datos de Gesti贸n" CENTERED

   ACTIVATE WINDOW oWnd // MAXIMIZED
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 09:02 AM

Carlos,

Posiblemente se pueda solucionar cambiando CP_OEMCP por CP_ACP en el c贸digo en C que he publicado

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 09:07 AM

Hola Antonio,

gracias por el c贸digo, es evidente que no tiene nada que ver. Pero debo estar haciendo algo en alg煤n sitio que cambien la forma en que se interpreta el charset del tooltip, pero darme cuenta de eso en un poco dificil.

Ya ver茅 de que se trata.

Un saludo,

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 09:11 AM
Antonio Linares wrote:Carlos,

Posiblemente se pueda solucionar cambiando CP_OEMCP por CP_ACP en el c贸digo en C que he publicado


Tal vez, pero no creo que ese sea el problema porque normalmente el tooltip se ve correctamente, es solo en este caso en particular, es decir que algo extra帽o estoy haciendo por ah铆.
Sigo pensando que el problema lo tengo en otro lado y que tu funci贸n est谩 correcta.

Se me han ocurrido un par de pruebas m谩s, ya te comento a ver que encuentro.

Gracias por tu atenci贸n,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 09:35 AM
Otra prueba m谩s!

En el men煤 principal del mismo programa uso una window+buttonbar.

    DEFINE ICON OICON RESOURCE "ATICONTA"
    DEFINE WINDOW PRINCIPAL FROM 0, 0 TO SizeY, SizeX PIXEL ;
          TITLE "ATICONTA v2.0 - Programa de contabilidad - Asesores Titulados S.A." ICON OICON COLORS 0, RGB(126,188,165)
          SET MESSAGE TO ("Asesores Titulados, S.A. atisa@atisa.es Tfno. 912054400 ") OF PRINCIPAL

       DEFINE BUTTONBAR oBar SIZE 48, 48 _3D OF PRINCIPAL  // ToolBar
       @ 0,0 BITMAP oBmp RESOURCE "ATICONTA" NOBORDER SIZE 800, 600 OF PRINCIPAL
    ACTIVATE WINDOW PRINCIPAL ON INIT MainInit( oBmp ) VALID ( FErase( cMarcaLog ), .T. )


Y luego se a帽aden los botones con tooltips, que est谩n en una tabla y que se a帽aden seg煤n el perfil del usuario logueado. En ella los tootips salen perfectos, sin OemToAnsi ni nada raro, editados con gets comunes, o escritos directamente en el c贸digo como en el caso del boton "salir"




Y en la misma aplicacion y en el mismo exe armo una ventana con lo de las rebar/toolbar, con el c贸digo que sub铆 antes, y



Bueno, eso nada m谩s, que tiene pinta de que lo que afecta a los tooltips es muuuy raro.

Un saludo,

Carlos.
Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 10:07 AM

Carlos,

Se soluciona con el cambio que te he indicado.

Acabo de probarlo con FWH\samples\ToolBar1.prg cambiando el tooltip "New" por "A帽adir" y se ve铆a igual que en tu aplicaci贸n.

Ahora se ve bien con ese cambio :-)

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Thu Nov 06, 2008 11:10 AM

Perfecto!

Muchas gracias!

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Problemas con tooltips en rebars/toolbars.
Posted: Fri Nov 07, 2008 02:58 PM
Carlos Mora wrote:Perfecto!

Muchas gracias!

Carlos.


He querido introducir este c贸digo y corregir el error en el ejemplo, pero no he sabido como.... :-)

prob茅 ponerlo con #pragma BEGINDUMP/#pragma ENDDUMP y me da errores....

Podr铆a alguien explicarme como?

Gracias desde ya
Saludos/Regards,

Jos茅 Murugosa

"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM
Problemas con tooltips en rebars/toolbars.
Posted: Fri Nov 07, 2008 05:17 PM

Jos茅,

Que errores te d谩 ?

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1279
Joined: Mon Feb 06, 2006 04:28 PM
Problemas con tooltips en rebars/toolbars.
Posted: Fri Nov 07, 2008 05:36 PM
Antonio Linares wrote:Jos茅,

Que errores te d谩 ?



C贸digo:
...codigo de toolbar1.prg modificado......

RETURN

//-----------------------------------------------------

#pragma BEGINDUMP

HB_FUNC( TTNSETTEXT ) 
{ 
   LPNMTTDISPINFO pti = ( LPNMTTDISPINFO ) hb_parnl( 1 ); 

   MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED, 
                        ( LPCSTR ) hb_parc( 2 ), -1, ( LPWSTR ) pti->szText, 
                        hb_parclen( 2 ) + 1 ); 

   pti->hinst = NULL; 
   pti->lpszText = NULL; 
   pti->uFlags = 0;	 
}

#pragma ENDDUMP

//-----------

Los errores son:

Error E2451 d:\prueba\prg\toolbar1.prg 143: Undefined Symbol 'LPNMTTDISPINFO' in function HB_FUN_TTNSETTEXT
Error E2379 d:\prueba\prg\toolbar1.prg 143: Statement missing ; in function HB_FUN_TTNSETTEXT
Error E2451 d:\prueba\prg\toolbar1.prg 143: Undefined symbol 'pti' in function HB_FUN_TTNSETTEXT


Gracias desde ya por tu atenci贸n
Saludos/Regards,

Jos茅 Murugosa

"Los errores en programaci贸n, siempre est谩n entre la silla, el teclado y la IA!!"
Posts: 989
Joined: Thu Nov 24, 2005 03:01 PM
Problemas con tooltips en rebars/toolbars.
Posted: Fri Nov 07, 2008 05:45 PM

Jos茅,

te falta el #include <windows.ch>!

Un saludo,

Carlos.

Saludos
Carlos Mora
http://harbouradvisor.blogspot.com/
StackOverflow http://stackoverflow.com/users/549761/carlos-mora
鈥淚f you think education is expensive, try ignorance"