No pinta bien los mensajes centrados con 2007

No pinta bien los mensajes centrados con 2007

Postby Andrés González » 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.

Code: Select all  Expand view  RUN
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]
Last edited by Andrés González on Thu Aug 14, 2008 12:39 pm, edited 2 times in total.
Saludos

Andrés González desde Mallorca
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Andrés González » 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.

Code: Select all  Expand view  RUN
   ******************************************
   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
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Andrés González » Thu Aug 14, 2008 1: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
User avatar
Andrés González
 
Posts: 629
Joined: Thu Jan 19, 2006 10:45 am
Location: Mallorca

Postby Cgallegoa » Thu Aug 14, 2008 8: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
Cgallegoa
 
Posts: 494
Joined: Sun Oct 16, 2005 3:32 am
Location: Quito - Ecuador


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 44 guests