para Antonio Linares (BITMAP)

Post Reply
User avatar
DiGregorio
Posts: 42
Joined: Fri Nov 04, 2005 12:22 am
Location: Ven - Ita
Contact:

para Antonio Linares (BITMAP)

Post by DiGregorio »

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

#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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: para Antonio Linares (BITMAP)

Post by Antonio Linares »

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

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
DiGregorio
Posts: 42
Joined: Fri Nov 04, 2005 12:22 am
Location: Ven - Ita
Contact:

Re: para Antonio Linares (BITMAP)

Post by DiGregorio »

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
Antonio Linares
Site Admin
Posts: 37481
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: para Antonio Linares (BITMAP)

Post by Antonio Linares »

Dmenico,

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

Antonio Linares
www.fivetechsoft.com
Post Reply