tOutlook2003 & Imagen de Fondo

Post Reply
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

tOutlook2003 & Imagen de Fondo

Post by Mike Serra »

Buenos días foro, os pregunto a ver si me podeis echar una manita:

1) Tengo en mi aplicación incrustada la clase toutlook2003, ¿Sabéis si se puede cambiar un icono en tiempo de ejecución en dicha clase?. Es que uno de los botones de la clase es un apartado de alarmas, y por defecto tiene un icono. Cuando haya una alarma quiero que dicho icono cambie para que el usuario entre en dicha parte.

2) Le he instalado a mi cliente la aplicación en varias máquinas, y cada una tiene un monitor con una resolución distinta, con lo cual, la imagen de fondo (en JPG) en uno aparece bien pero en otro aparece como un mosaico. Creo que de esto había algo en el foro, pero no lo he encontrado. ¿Me podeís dar alguna pista de como ensanchar la imagen para que en todos los monitores aparezca bien?

Muchas gracias por todo.

Un Saludo,

Miguel A
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: tOutlook2003 & Imagen de Fondo

Post by Antonio Linares »

Mike,

1) Puedes cambiar el bitmap de un grupo de la siguiente forma:

Code: Select all

oOutLook:aGroups[ n ]:oBitmap:SetBMP( cBmpResName ) // desde recursos ó

oOutLook:aGroups[ n ]:oBitmap:LoadBMP( cBmpName ) // desde un fichero

oOutLook:aGroups[ n ]:Paint()
 
2) Como estas pintando la imagen en la ventana ? Usas un objeto TImage ?
Por favor muestra el código que usas, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Re: tOutlook2003 & Imagen de Fondo

Post by Mike Serra »

Como siempre, gracias Antonio por contestar.

1) Solucionado, se queda perfecto con lo indicado

2) Con respecto al segundo punto, lo he intentado sin exito de las siguientes formas:

Con un BRUSH

Code: Select all

   
      ....
      ....
      define BRUSH obmp FILENAME ".\IMG\logosocial.bmp" of oWndPrincipal
    
    define window oWndPrincipal title oApplication:Title + " Empresa: " + oCompany:Nombre mdi menu BuildMenu() icon icono colors CLR_BLUE, RGB( 231,242,255 ) BRUSH obmp
      ....
      ....
      ....
    activate window oWndPrincipal maximized valid CloseAplicattion(2) on init (oApplication:oWnd:=oWndPrincipal, SearchAlarms())  ON RESIZE ( oSplit:Adjust(),;
                  WndLeft( oWndPrincipal:oWndClient:hWnd, oSplit:nRight + 1 ),;
                  WndWidth( oWndPrincipal:oWndClient:hWnd, oWndPrincipal:nWidth - oOutLook2003:nWidth + 80 ) )
Con una clase IMAGE

Code: Select all

     ....
     ....
    define window oWndPrincipal title oApplication:Title + " Empresa: " + oCompany:Codigo + " - " + oCompany:Nombre mdi menu BuildMenu() icon icono colors CLR_BLUE, RGB( 231,242,255 )
        ....
        define image obmp FILENAME ".\IMG\logosocial.bmp" of oWndPrincipal
        
    oWndPrincipal:bPainted = { | hDC | BmpTiled( hDC,oBmp, oWndPrincipal ) }
        ....
    activate window oWndPrincipal maximized valid CloseAplicattion(2) on init (oApplication:oWnd:=oWndPrincipal, SearchAlarms())  ON RESIZE ( oSplit:Adjust(),;
                  WndLeft( oWndPrincipal:oWndClient:hWnd, oSplit:nRight + 1 ),;
                  WndWidth( oWndPrincipal:oWndClient:hWnd, oWndPrincipal:nWidth - oOutLook2003:nWidth + 80 ) ) 

 
Con la clase BITMAP

Code: Select all

     ....   
    define window oWndPrincipal title oApplication:Title + " Empresa: " + oCompany:Codigo + " - " + oCompany:Nombre mdi menu BuildMenu() icon icono colors CLR_BLUE, RGB( 231,242,255 )
         define bitmap obmp FILENAME ".\IMG\logosocial.bmp" of oWndPrincipal
        
    ...
        oWndPrincipal:bPainted = { | hDC | BmpTiled( hDC,oBmp, oWndPrincipal ) }
      
    activate window oWndPrincipal maximized valid CloseAplicattion(2) on init (oApplication:oWnd:=oWndPrincipal, SearchAlarms())  ON RESIZE ( oSplit:Adjust(),;
                  WndLeft( oWndPrincipal:oWndClient:hWnd, oSplit:nRight + 1 ),;
                  WndWidth( oWndPrincipal:oWndClient:hWnd, oWndPrincipal:nWidth - oOutLook2003:nWidth + 80 ) ) 
 
El código de la función BmpTiled (para 2 y 3) es el siguiente:

Code: Select all

function BmpTiled( hDC, oBmp, oWnd ) //BmpTiled(
    
local nWidth := oWnd:nWidth(), nHeight := oWnd:nHeight()
local nRow := 0, nCol := 0, n
local nBmpWidth := oBmp:nWidth(), nBmpHeight := oBmp:nHeight()

while nRow < nHeight
nCol = 0
while nCol < nWidth
PalBmpDraw( hDC, nRow, nCol, oBmp:hBitmap )
nCol += nBmpWidth
end
nRow += nBmpHeight
end

return nil

 
Espero que me puedas ayudar.

Muchas Gracias por Todo.

Saludos
User avatar
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: tOutlook2003 & Imagen de Fondo

Post by Antonio Linares »

Mike,

Hazlo asi:

Code: Select all

#include "FiveWin.ch"

function Main()

   local oWnd, oBmp

   DEFINE BITMAP oBmp FILENAME "logo.bmp"

   DEFINE WINDOW oWnd MDI

   ACTIVATE WINDOW oWnd ;
      ON PAINT DrawBitmap( hDC, oBmp:hBitmap, 0, 0, oWnd:oWndClient:nWidth(), oWnd:oWndClient:nHeight() )
   
   oBmp:End()

return nil  
 
Image
regards, saludos

Antonio Linares
www.fivetechsoft.com
Mike Serra
Posts: 287
Joined: Fri Apr 14, 2006 5:52 pm
Location: Córdoba (España)

Re: tOutlook2003 & Imagen de Fondo

Post by Mike Serra »

Funcionó perfectamente, muchisimas gracias Antonio

Saludos,
Post Reply