FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour ajustar una imagen en un dialogo como background
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 03:16 PM
Buenos dias estoy tratado sin exito de ajustar una imagen en un dialogo
Code (fw): Select all Collapse
 DEFINE ICON oIco FILE ".\jnet.ico"
    //DEFINE BRUSH oBrush FILENAME '.\logo.jpg'

    define dialog oDlg title 'ingreso de usuarios a la AppCobros ( credenciales) ' + netname() SIZE 400, 400 ICON oIco pixel transparent STYLE nOr( DS_SYSMODAL, DS_MODALFRAME ) //brush oBrush

    //@ 0, 0 BITMAP oBrush FILENAME '.\logo.jpg' ADJUST NOBORDER OF oDlg  SIZE 600,800 PIXEL

    @005,05 say aSay [ 01 ] prompt 'login'          of oDlg size  70,15 pixel
    @025,05 say aSay [ 02 ] prompt 'password'       of oDlg size  70,15 pixel
    @045,05 say aSay [ 03 ] prompt 'num_empre'      of oDlg size  70,15 pixel
    @065,05 say aSay [ 04 ] prompt 'gestion'        of oDlg size  70,15 pixel
    @085,05 say aSay [ 05 ] prompt 'e_cod'          of oDlg size  70,15 pixel

    @005,75 get aGet [ 01 ] var hData['login']     of oDlg picture '@!'    size  090,15 pixel valid !empty( hData['login']         )
    @025,75 get aGet [ 02 ] var hData['password']  of oDlg picture '@!'    size  090,15 pixel valid !empty( hData['password']      ) .and. veaLogin( hData['login'], hData['password'] )
    @045,75 get aGet [ 03 ] var hData['num_empre'] of oDlg picture '999'   size  090,15 pixel valid !empty( hData['num_empre']     )
    @065,75 get aGet [ 04 ] var hData['gestion']   of oDlg picture '@!'    size  090,15 pixel valid !empty( hData['gestion']       )
    @085,75 get aGet [ 05 ] var hData['e_cod']     of oDlg picture '@!'    size  060,15 pixel valid !empty( hData['e_cod']         ) .and. ;
    veaE_Cod( hData['login'], hData['password'], hData['num_empre'], hData['gestion'], hData['e_cod'] )

    @145,05   BUTTON aBtn [ 01 ] prompt 'Grabar'        size 60, 15 action ( lGrabar := .t., oDlg:end() ) of oDlg pixel
    @145,105  BUTTON aBtn [ 02 ] prompt 'Cancelar'      size 60, 15 action ( lGrabar := .f., oDlg:end() ) of oDlg pixel

    activate dialog oDlg Center valid( oIco:end(), .t. ) on init BuildBrush( oDlg ) 


function BuildBrush( oDlg )

   local oImage, oBrush, aRect := oDlg:GetRect()

   DEFINE IMAGE oImage FILENAME ".\logo.jpg"

   oBrush   := TBrush():new( ,,,, ResizeBmp( oImage:hBitmap,  aRect[4], aRect[3], .T.,  ) )  // 1 = stretch, 2 : fitoutside, 3:fitinside
   oImage:End()
   oDlg:SetBrush( oBrush )
   oBrush:End()

return nil
talvez una ayuda agradeceria
saludos
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 03:43 PM
Intenta asi:
Code (fw): Select all Collapse
// C:\FWH\SAMPLES\BTNDIAGO.PRG

#include "fivewin.ch"

STATIC oDlg

FUNCTION test()

   LOCAL oBtn, hBmp := LinesBmp()
   LOCAL lEnabled := .T.

   DEFINE DIALOG oDlg SIZE 200, 200 PIXEL TRUEPIXEL

   /*
   @  40, 60 BTNBMP oBtn ;
      FILE "..\bitmaps\pngs\image1.png", "", hBmp, "" ;
      SIZE 64, 64 PIXEL FLAT NOROUND GDIP WHEN lEnabled OF oDlg
   */

   @  40, 60 BTNBMP oBtn ;
      FILE ".\LOGO.jpg", "", hBmp, "" ;
      SIZE 64, 64 PIXEL FLAT NOROUND GDIP WHEN lEnabled OF oDlg

   oBtn:nClrBorder := RGB( 195, 195, 185 )

   oBtn:bClrGrad = {| lInvert | If( ! lInvert, ;
      { { 0.25, RGB( 245, 245, 235 ),  RGB( 250, 250, 245 ) }, ;
      { 0.75,  RGB( 250, 250, 245 ), RGB( 245, 245, 235 ) } }, ;
      { { 0.25,  RGB( 250, 250, 245 ), RGB( 245, 245, 235 ) }, ;
      { 0.75, RGB( 245, 245, 235 ),  RGB( 250, 250, 245 ) } } ) }

   @ 130, 60 CHECKBOX lEnabled PROMPT "Enabled" ;
      SIZE 80, 20 PIXEL OF oDlg

   ACTIVATE DIALOG oDlg CENTERED

   RETURN NIL

STATIC FUNCTION LinesBmp()

   LOCAL hBmp, oBrush

   // DEFINE BRUSH oBrush STYLE BDIAGONAL COLOR CLR_GRAY STRETCH // RESIZE

   DEFINE BRUSH oBrush STYLE BDIAGONAL COLOR nRGB( 000, 100, 255 ) STRETCH // RESIZE

   // DEFINE BRUSH oBrush COLOR nRGB( 250, 213, 174 ) STYLE HORIZONTAL RESIZE
   // DEFINE BRUSH oBrush COLOR nRGB( 192, 192, 192 ) STYLE HORIZONTAL

   hBmp  := FW_MakeYourBitmap( 95, 95, < | hDC, w, h |
      FillRect( hDC, { 0, 0, 94, 94 }, oBrush:hBrush )

      RETURN NIL
   > )

   RELEASE BRUSH oBrush

RETURN hBmp

// FIN / END
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 03:46 PM
Buen dia


[/img]

Algo Asi ??
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 04:19 PM

si gracias

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 04:42 PM
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 04:43 PM
Asi lo hago.
Code (fw): Select all Collapse
FUNCTION ClaveAcceso
    LOCAL oDlgEntra, lEntra := .F., oGet := Array(2)
    PRIVATE oTimAcc     
    aGENERAL[01] := "USUARIO"
    aGENERAL[02] := "CONTRASEÑA"
    DEFINE BitMap oBmp1 FILE aGeneral[08]+"LOGO_EMPRESA.BMP"
       DEFINE DIALOG oDlgEntra RESOURCE "SYS_ENTRA" TRANSPARENT
        oDlgEntra:lHelpIcon := .F.
        oDlgEntra:bKeyDown  := {|nKey| IIF(nKey=27,oDlgEntra:End(),.F.)}
        oDlgEntra:bPainted := {|hDC| DBmpTiledCC(hDC,oDlgEntra,oBmp1)}      
        REDEFINE SAY PROMPT "Usuario" ID 105 OF oDlgEntra COLOR CLR_WHITE,CLR_BLACK
        REDEFINE SAY PROMPT "Clave de Acceso" ID 106 OF oDlgEntra COLOR CLR_WHITE,CLR_BLACK
        REDEFINE SAY PROMPT "(c) By Francisco Javier Vital Alvarez (2022)" ID 4005 OF oDlgEntra COLOR CLR_WHITE,CLR_BLACK
        REDEFINE GET oGet[1] VAR aGENERAL[01] ID 201 OF oDlgEntra FONT aLetras[04] PICTURE "@!" BITMAP "A_USER" ACTION SOLO_NADA(oGet[1]) COLOR (nRGB( 197, 205, 255 ))
        REDEFINE GET oGet[2] VAR aGENERAL[02] ID 202 OF oDlgEntra FONT aLetras[04] PICTURE "@!" BITMAP "A_PASS" ACTION SOLO_NADA(oGet[2]) VALID ValidaEntrada(oGet,@lEntra,oDlgEntra)   COLOR (nRGB( 197, 205, 255 ))
            oGet[1]:bKeyDown := {|nKey| PROCESO_KEY(oGet,nKey,1) }
            oGet[1]:bLostFocus := {|| PROCESO_PASS(oGet,1) }                        
            oGet[2]:bGotFocus := {|| oGet[2]:lPassword := .T.} 
            oGet[2]:bKeyDown := {|nKey| PROCESO_KEY(oGet,nKey,2) }
            oGet[2]:bLostFocus := {|| PROCESO_PASS(oGet,2) }                                    
    ACTIVATE DIALOG oDlgEntra CENTER ON INIT (Efectos( oDlgEntra, 16 ),RoundCorners( oDlgEntra ),PoneTitulo3(oDlgEntra,"Sistema Administrativo",,.T.,.F.,0,aLetras[65],15), Activa_Timer_Acceso(oDlgEntra))
   oTimAcc:End()    
   oBmp1:End()
RETURN lEntra

FUNCTION DBmpTiledCC(hDC, oWnd, oBmp )
    IF oBmp:hBitMap == 0
        RETURN nil
    ENDIF
    PalBmpDraw(hDC , 0, 0, oBmp:hBitMap,,oWnd:nWidth,oWnd:nHeight )
RETURN nil
Saludos.
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 05:56 PM

garcias con eso me presenta bien pero como le hago trasnparente que se vea el texto

saludos

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 06:13 PM
asi esta
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 07:34 PM
Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 257
Joined: Mon Jun 10, 2013 06:40 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 08:02 PM

Lo que quieres es hacer transparentes los GETS para que se vea la imagen de fondo??

Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: ajustar una imagen en un dialogo como background
Posted: Thu Sep 05, 2024 08:48 PM

creo que eso si esta lo que quisiera es que se opaque un poco la imagen de fondo pára que se distingan bien los gets

perdon si estoy pidiendo cosas erroneas

saludos y gracias

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: ajustar una imagen en un dialogo como background
Posted: Fri Sep 06, 2024 12:45 PM
Que tal?

https://imgur.com/RPoM5Sk



Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: ajustar una imagen en un dialogo como background
Posted: Fri Sep 06, 2024 12:47 PM
Code (fw): Select all Collapse
// C:\FWH\SAMPLES\OLIVEJR1.PRG - By Joao Santos.

#include "FiveWin.ch"

STATIC oFont, oFont2, oSay, oSay2, oSay3

FUNCTION Main()

   LOCAL oDlg, oImagem, oBtn, nNum := 0, oGet, oGet2, oEmail
   LOCAL cImagem  := "..\bitmaps\pngs\2.png"
   LOCAL dDat := Date()
   LOCAL cEmail := "Wilson.josenet@gmail.com"

   SET CENTURY ON
   SET DATE BRIT
   SET DATE FORMAT "DD/MM/YYYY"

   SET _3DLOOK ON

   SkinButtons()

   SetDlgGradient( { { 0.7, CLR_WHITE, CLR_WHITE }, { 0.5, CLR_BLACK, CLR_BLACK }, .F. } )

   DEFINE FONT oFont  NAME "Verdana" SIZE 0, -20 BOLD
   DEFINE FONT oFont2 NAME "Verdana" SIZE 0, -14 BOLD

   DEFINE DIALOG oDlg SIZE 800, 600 STYLE nOr( WS_CHILD, WS_POPUP ) FONT oFont ;
      COLOR CLR_BLACK, CLR_BLACK PIXEL TRUEPIXEL TRANSPARENT

   // oDlg:nOpacity := 140

   @ 0, 160 BITMAP oImagem FILENAME cImagem SIZE 400, 600 OF oDlg PIXEL        ;
      NOBORDER ADJUST

   oImagem:lTransparent := .T.

   oImagem:nOpacity := 140

   @ 500, 650 BTNBMP oBtn PROMPT "&EXIT" FILENAME "..\bitmaps\16x16\Exit.bmp"  ;
      SIZE 70, 70 OF oDlg PIXEL NOBORDER TOP 2007 FLAT FONT oFont              ;
      COLOR CLR_YELLOW, CLR_BLACK ACTION( oDlg:End() )
      
   oBtn:lCancel  := .T.
   oBtn:nRound   := 60
   oBtn:bClrGrad := { |lInvert| If( lInvert, 0x80FFA54A, nARGB( 54, 0, 192, 0 ) ) }

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   @ 230, 15 GET oGet VAR nNum OF oDlg SIZE 80, 20 PICTURE "9999999.99" PIXEL ;
      COLORS CLR_BLACK, CLR_WHITE FONT oFont2

   @ 300, 15 GET oGet2 VAR dDat OF oDlg SIZE 120, 20 PICTURE "@D 99/99/9999"  ;
      PIXEL COLORS METRO_COBALT, CLR_WHITE FONT oFont2 CENTER

   @ 450, 15 GET oEmail VAR cEmail OF oDlg SIZE 220, 30 PICTURE "@"           ;
      PIXEL COLORS METRO_EMERALD, CLR_WHITE FONT oFont2 CENTER

   ACTIVATE DIALOG oDlg ; //CENTERED ;
      ON INIT( SobreporImagem( oDlg ), xFocus( oGet ) )

   IF Set( _SET_INSERT, ! Set( _SET_INSERT ) )
      Set( _SET_INSERT, ! Set( _SET_INSERT ) )
   ENDIF

   oFont:End()
   oFont2:End()

RETURN NIL

FUNCTION SobreporImagem( oDlg )

   LOCAL oImagem
   LOCAL cImagem := "..\bitmaps\pngs\home.png"

   @ 0, 0 XIMAGE oImagem FILENAME cImagem SIZE 200, 200 OF oDlg ;
      NOBORDER

   oImagem:lTransparent := .T.

   oImagem:nOpacity := 140

   @ 200, 15 SAY oSay PROMPT "This a Test:" OF oDlg SIZE 150, 30 UPDATE      ;
      COLORS CLR_GREEN, CLR_BLACK PIXEL TRANSPARENT ADJUST FONT oFont2

   @ 270, 15 SAY oSay2 PROMPT "Wilson Gamboa:" OF oDlg SIZE 150, 30 UPDATE   ;
      COLORS METRO_ORANGE, CLR_BLACK PIXEL TRANSPARENT ADJUST FONT oFont2

   @ 420, 15 SAY oSay3 PROMPT "Email Contacto:" OF oDlg SIZE 146, 30 UPDATE  ;
      COLORS METRO_TAUPE, CLR_BLACK PIXEL TRANSPARENT ADJUST FONT oFont2

RETURN NIL
//-------------------------------------------------------------------------//
// As vezes simples SetFocus( oObj ) nao faz um objeto ganhar foco
// neste caso pode apelar para estas duas funcoes a seguir
// Forcar foco para um objeto especifico - Ednaldo Rolim...
//-------------------------------------------------------------------------//
FUNCTION xFocus( oObj )

   xSetFocus( oObj )
   xSetFocus( oObj )

RETURN( .T. )

FUNCTION xSetFocus( oObj )    

   LOCAL _oWnd := oObj:oWnd, _oTempo := ""

   DEFINE TIMER _oTempo INTERVAL 10 OF _oWnd ;
      ACTION ( oObj:SetFocus(), _oTempo:End() )

   ACTIVATE TIMER _oTempo

RETURN( .T. )

// FIN / END - kapiabafwh@gmail.com
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 670
Joined: Wed Oct 19, 2005 06:41 PM
Re: ajustar una imagen en un dialogo como background
Posted: Sat Sep 07, 2024 12:53 AM

Muchas gracias a todos voy a revisar y comentaré

Saludos

Wilson 'W' Gamboa A
Wilson.josenet@gmail.com
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: ajustar una imagen en un dialogo como background
Posted: Mon Sep 09, 2024 01:54 AM
This is not correct
Code (fw): Select all Collapse
function BuildBrush( oDlg )

   local oImage, oBrush, aRect := oDlg:GetRect()

   DEFINE IMAGE oImage FILENAME ".\logo.jpg"

   oBrush   := TBrush():new( ,,,, ResizeBmp( oImage:hBitmap,  aRect[4], aRect[3], .T.,  ) )  // 1 = stretch, 2 : fitoutside, 3:fitinside
   oImage:End()
   oDlg:SetBrush( oBrush )
   oBrush:End()

return nil
Instead please use STRETCH clause while creating the Brush.
Keep your program simple.

Test program:
Code (fw): Select all Collapse
#include "fivewin.ch"

function Main()

   local oDlg, oFont, oBrush

   DEFINE BRUSH oBrush FILE "..\bitmaps\logo.png" STRETCH
   DEFINE FONT oFont NAME "IMPACT" SIZE 0,-40 BOLD

   DEFINE DIALOG oDlg SIZE 600,350 PIXEL TRUEPIXEL RESIZABLE ;
      FONT oFont BRUSH oBrush TRANSPARENT

   @ 180,80 SAY "STRETCH BRUSH" SIZE 300,50 PIXEL OF oDlg CENTER COLOR CLR_WHITE,CLR_BLACK

   ACTIVATE DIALOG oDlg CENTERED

   RELEASE FONT oFont
   RELEASE BRUSH oBrush

return nil
Regards



G. N. Rao.

Hyderabad, India