FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour No pinta bien los mensajes centrados con 2007
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
No pinta bien los mensajes centrados con 2007
Posted: Wed Aug 13, 2008 10:45 AM
Antonio no pintan bien los mensajes centrados con la clausula CENTERED, sin 2007 va estupendo pero si lo compilo con esta opción no los centra bien en la barra de mensajes, los centra sin tener en cuenta el resto de controles. Con lo cual algunos mensajes largos machaca alguno de los controles.

SET MESSAGE OF oWnd ;
   TO "© xxxxxxxxxxxx" ;
	 NOINSET DATE CLOCK KEYBOARD 2007 //CENTERED no funciona bien con 2007
	 //con esto se activa la linea de mensaje el dia,el reloj y el teclado


[img=http://img241.imageshack.us/img241/9544/screenshotug2.th.jpg]
Saludos



Andrés González desde Mallorca
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
No pinta bien los mensajes centrados con 2007
Posted: Thu Aug 14, 2008 12:33 PM
Antonio perdona que insista pero no entiendo porque al cambiar el aspecto a 2007, los mensajes centrados se centran sin tener en cuenta el resto de controles de la barra de mensajes. Si le quito la clausula 2007 me lo centra perfecto pero no así cuando se la añado. Es algo que hago mal, a nadie le pasa lo mismo.

   ******************************************
   DEFINE ICON   oIco  FILE "../bmp/cuadrante.ico"
   DEFINE BITMAP oBmp1 FILE "../bmp/logopol.bmp"
   DEFINE BITMAP oBmp2 FILE "../bmp/logoback.bmp"

   DEFINE WINDOW oWnd TITLE "Cuadrante de servicios";
                      MENU BuildMenu() ;
                      COLOR "W/BG" ;
                      ICON oIco ;
                      MDI
   
   DEFINE BUTTONBAR oBar OF oWnd SIZE 36, 36
   oBar:L2007:=.t.


   SET MESSAGE OF oWnd ;
   TO "© xxxxxxxxxxxx" ;
   NOINSET CENTERED DATE CLOCK KEYBOARD 2007 //CENTERED no funciona bien con 2007
	 //con esto se activa la linea de mensaje el dia,el reloj y el teclado

 	 DEFINE MSGITEM oMsgUser OF oWnd:oMsgBar;
          PROMPT  cUsuario  ;
          SIZE 100 ;
		      BITMAP "..\bmp\mnu\usuario.bmp";
          TOOLTIP " "+("Usuario de la aplicación") + " "

	 DEFINE MSGITEM oMsgAutor OF oWnd:oMsgBar;
          PROMPT "© Andysoft"   ;
          SIZE 100              ;
			    BITMAP "..\bmp\mnu\source.bmp";
          TOOLTIP " "+("Acerca de...") + " ";
          ACTION MsgInfo( "Desarrollado integramente por" +CRLF+ "   Andrés González" )

   DEFINE MSGITEM oMsgWeb OF oWnd:oMsgBar ;
          SIZE 132 ;
			    BITMAP "..\bmp\mnu\intranet.bmp";
          TOOLTIP ("Visitar la web de l'Ajuntament de Calvià" ) ;
          PROMPT "www.Calvia.com" ;
          COLOR CLR_HBLUE, GetSysColor(15)    ;
          ACTION Navegate( "www.Calvia.com")
          
   ACTIVATE WINDOW oWnd MAXIMIZED ;
		      ON PAINT ( DrawBitmap( hDC,oBmp2:hBitmap,( oWnd:nHeight() / 2 ) - ( oBmp2:nHeight() / 2 ) - 50,( oWnd:nWidth() / 2 ) - ( oBmp2:nWidth() / 2 ),0,0, SRCPAINT ),;
                       DrawBitmap( hDC,oBmp1:hBitmap,( oWnd:nHeight() / 2 ) - ( oBmp1:nHeight() / 2 ) - 50,( oWnd:nWidth() / 2 ) - ( oBmp1:nWidth() / 2 ),0,0, SRCAND ) ) ;
Saludos



Andrés González desde Mallorca
Posts: 632
Joined: Thu Jan 19, 2006 10:45 AM
No pinta bien los mensajes centrados con 2007
Posted: Thu Aug 14, 2008 01:14 PM

Antonio me he fijado que en muchos ejemplos que hay en el foro el centrado con 2007 lo hace sin tener en cuenta los controles de la barra de mensajes. Fijate en alguno y veras que el centrado es sobre el total de la barra no sobre el resto que queda libre para poner los mensajes. Esto no pasa sin el 2007. El problema es que no te das cuenta a menos que tengas unos cuantos controles puestos en la barra.

http://forums.fivetechsoft.com/viewtopi ... ht=xbrowse

Saludos



Andrés González desde Mallorca
Posts: 514
Joined: Sun Oct 16, 2005 03:32 AM
No pinta bien los mensajes centrados con 2007
Posted: Thu Aug 14, 2008 08:57 PM

Andrés:

Yo hice la siguiente corrección en la Clase TMsgItem, línea 171 y ahora me pinta perfecto con o sin BitMaps:

Antes:
::oMsgBar:Say( ::oMsgBar:nHeight / 4 - 2,;
nLeft - 1 + ( ::nWidth / 2 ) - ( GetTextWidth( hDC, AllTrim( ::cMsg ), ::oMsgBar:oFont:hFont ) / 2 ),;
AllTrim( ::cMsg ), If( ::lActive, ::nClrText, ::nClrDisabled ),;
::nClrPane, ::oFont, .T., .T. )

Ahora:
::oMsgBar:Say( ::oMsgBar:nHeight / 4 - 2,;
nLeft + nBmpWidth - iif(nBmpWidth>0,7,1) + ( ::nWidth - GetTextWidth( hDC, AllTrim( ::cMsg ), ::oFont:hFont ) ) / 2,;
AllTrim( ::cMsg ), If( ::lActive, ::nClrText, ::nClrDisabled ),;
::nClrPane, ::oFont, .T., .T. )

Saludos,

Carlos Gallego

Saludos,



Carlos Gallego



*** FWH-25.12, xHarbour 1.3.1 Build 20241008, Borland C++7.70, PellesC, ADS 11.1***

Continue the discussion