Page 1 of 2

ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 3:16 pm
by wilsongamboa
Buenos dias estoy tratado sin exito de ajustar una imagen en un dialogo

Code: Select all | Expand

 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

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 3:43 pm
by karinha
Intenta asi:

Code: Select all | Expand

// 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.

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 3:46 pm
by VitalJavier
Buen dia

Image
[/img]

Algo Asi ??

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 4:19 pm
by wilsongamboa
si gracias

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 4:42 pm
by karinha

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 4:43 pm
by VitalJavier
Asi lo hago.

Code: Select all | Expand


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.

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 5:56 pm
by wilsongamboa
garcias con eso me presenta bien pero como le hago trasnparente que se vea el texto
saludos

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 6:13 pm
by wilsongamboa
asi esta
Image

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 7:34 pm
by wilsongamboa

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 8:02 pm
by VitalJavier
Lo que quieres es hacer transparentes los GETS para que se vea la imagen de fondo??

Re: ajustar una imagen en un dialogo como background

Posted: Thu Sep 05, 2024 8:48 pm
by wilsongamboa
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

Re: ajustar una imagen en un dialogo como background

Posted: Fri Sep 06, 2024 12:45 pm
by karinha
Que tal?

https://imgur.com/RPoM5Sk

Image

Regards, saludos.

Re: ajustar una imagen en un dialogo como background

Posted: Fri Sep 06, 2024 12:47 pm
by karinha

Code: Select all | Expand

// 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.

Re: ajustar una imagen en un dialogo como background

Posted: Sat Sep 07, 2024 12:53 am
by wilsongamboa
Muchas gracias a todos voy a revisar y comentaré
Saludos

Re: ajustar una imagen en un dialogo como background

Posted: Mon Sep 09, 2024 1:54 am
by nageswaragunupudi
This is not correct

Code: Select all | Expand

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: Select all | Expand

#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
Image