FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour para Antonio Linares (BITMAP)
Posts: 42
Joined: Fri Nov 04, 2005 12:22 AM
para Antonio Linares (BITMAP)
Posted: Thu Jul 09, 2009 09: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 (fw): Select all Collapse
#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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: para Antonio Linares (BITMAP)
Posted: Tue Jul 14, 2009 04: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 (fw): Select all Collapse
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
Posts: 42
Joined: Fri Nov 04, 2005 12:22 AM
Re: para Antonio Linares (BITMAP)
Posted: Thu Jul 16, 2009 06: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
Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: para Antonio Linares (BITMAP)
Posted: Sat Jul 18, 2009 04: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

Continue the discussion