para Antonio Linares (BITMAP)

para Antonio Linares (BITMAP)

Postby DiGregorio » Thu Jul 09, 2009 9:30 pm

Estimados Amigos,

Probando la funcion bitmap, me consegui con un curioso detalle, despues de pintar el boton y crear un popmenu, cuando refresco el boton a traves de una de las opciones del popmenu, este bitmap se duplica un poco mas arriba del pintado originalemente.


Code: Select all  Expand view

#include "FiveWin.ch"

Function Test()
Local oDlgFecha

 DEFINE DIALOG oDlgFecha SIZE 800,600

            @ 10,10   BITMAP  FILENAME ".\BITMAPS\btnbmp.bmp"  PIXEL OF ODLGFECHA    SIZE  25,25 NOBORDER
           
             oDlgFecha:brClicked = { | nRow, nCol, nFlags | ;
                 ShowPopup2( oDlgFecha, nRow, nCol ) }


             Activate dialog oDlgFecha  center;
           

           RETU NIL


FUNCTION SHOWPOPUP2(oDlg,nRow,nCOL)
Local oMenu
 
   MENU oMenu POPUP   2007

    MENUITEM "&PRUEBA"  ;
    action( TBitmap():New( 10, 10, 25, 25,, ".\BITMAPS\btnbmp.bmp", .T., oDlg,,, .F., .F.,,, .F.,, .T.,, .F. ))

   ENDMENU

ACTIVATE POPUP oMenu OF oDlg AT nRow, nCol

RETURN( NIL )
 
FWH/FWHX 9.10 + Harbour + xMate 1.5

Domenico Di Gregorio
Italia - Venezuela
stePyme 1.0
User avatar
DiGregorio
 
Posts: 42
Joined: Fri Nov 04, 2005 12:22 am
Location: Ven - Ita

Re: para Antonio Linares (BITMAP)

Postby Antonio Linares » Tue Jul 14, 2009 4:59 pm

Domenico,

Cuando creas los controles sobre un diálogo, en tu código:

@ 10,10 BITMAP ...

dichas unidades son "lógicas" y no son pixeles. Windows transforma dichas unidades lógicas a pixeles al crear el diálogo y sus controles hijos.

Una vez creado el diálogo, si creamos un control sobre él, estaremos usando pixeles y no unidades lógicas. De ahi la diferencia de posiciones que observas.

Una solución es crear el control hijo desde la claúsula ON INIT del diálogo:
Code: Select all  Expand view

ACTIVATE DIALOG oDlg ON INIT CreaControles( oDlg )

...

function CreaControles( oDlg )

   @ 10,10   BITMAP ...

   ...

return nil
 

Desde CreaControles() las unidades especificadas serán pixeles.
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: para Antonio Linares (BITMAP)

Postby DiGregorio » Thu Jul 16, 2009 6:47 pm

Gracias Antonio,

En efecto ese era el problema, lo que hize fue crear una funcion que crea los controles y otra que los refresca y funciona perfectamente.

Una pregunta en una Tpanel es posible que estos mismos controles se creen mas pegados que en una dialog, la tPanel maneja diferente las coordenadas????, porque los botones se pintan un tanto extranos.

Nota: igual en la TPanel creo los controles en una funcion para evitar el error de DEFCONTROL.


Gracias.
FWH/FWHX 9.10 + Harbour + xMate 1.5

Domenico Di Gregorio
Italia - Venezuela
stePyme 1.0
User avatar
DiGregorio
 
Posts: 42
Joined: Fri Nov 04, 2005 12:22 am
Location: Ven - Ita

Re: para Antonio Linares (BITMAP)

Postby Antonio Linares » Sat Jul 18, 2009 4:50 pm

Dmenico,

Si nos proporcionas un ejemplo pequeño y autocontenido en PRG, podremos revisarlo y comentarte, gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41366
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

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