Page 1 of 1

Imagen en login? (SOLUCIONADO)

PostPosted: Mon Mar 11, 2024 4:50 am
by Armando
Saludos al foro:

Amigos, necesito en un DIALOG para login poner una imagen de fondo y sobre ella
tener los controles GET para usuario y contraseña además de dos botones.

Lo he intentado con el siguiente código pero los controles me quedan atrás de la imagen
aunque en los recursos he definido la imagen como TRANSPARENTE y hasta que paso el
puntero del ratón aparecen.

Code: Select all  Expand view

      REDEFINE IMAGE oImg FILENAME oApp:cImagen ID 25 OF oDlg UPDATE ADJUST

      REDEFINE GET aGets[ 02 ] VAR cPsw ID 102 OF oDlg ;
         MESSAGE "Teclee su clave de acceso"
 


Saludos y muchas gracias por el apoyo

Re: Imagen en login?

PostPosted: Mon Mar 11, 2024 6:49 am
by nageswaragunupudi
Use the image as brush of the dialog.

Re: Imagen en login?

PostPosted: Mon Mar 11, 2024 3:14 pm
by Armando
Mr. Rao:

Thanks again, your advice works fine, as usual

Best regards

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Mon Mar 11, 2024 3:44 pm
by nageswaragunupudi
Code: Select all  Expand view
function Test()

   local oDlg, oBrush, oFont, oBold, oGet
   local cPassWord := Space( 10 )

   DEFINE BRUSH oBrush FILE "c:\fwh\bitmaps\olga1.jpg" RESIZE
   DEFINE FONT oFont NAME "VERDANA" SIZE 0,-20
   DEFINE FONT oBold NAME "VERDANA" SIZE 0,-24 BOLD
   DEFINE DIALOG oDlg SIZE 300,400 PIXEL TRUEPIXEL ;
      FONT oFont BRUSH oBrush TITLE "PassWord"

   @  80, 40 SAY "Enter" + CRLF + "PassWord" SIZE 220,80 PIXEL OF oDlg;
      FONT oBold CENTER COLOR CLR_WHITE TRANSPARENT

   @ 200, 40 GET oGet VAR cPassWord SIZE 220,30 PIXEL OF oDlg ;
      PASSWORD

   @ 320,100 BTNBMP PROMPT "OK" SIZE 100,40 PIXEL OF oDlg FLAT ;
      COLOR CLR_WHITE, CLR_GREEN ;
      ACTION oDlg:End()

   ACTIVATE DIALOG oDlg CENTERED
   RELEASE BRUSH oBrush

return nil


Image

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Tue Mar 12, 2024 12:45 pm
by karinha
Excellent example Master Rao. I modified it a little to my personal taste. I hope you don't bother him.

Excelente ejemplo Maestro Rao. Lo modifiqué un poco a mi gusto personal. Espero que no lo molestes.

Code: Select all  Expand view

// C:\FWH\SAMPLES\TESTPAS2.PRG

#Include "FiveWin.ch"

#Define CLR_ORANGE     nRGB( 255, 165, 000 ) //-> Orange - Laranja

FUNCTION Test_PassWord()

   LOCAL oDlg, oBrush, oFont, oBold, oGet, oBtn
   LOCAL cPassWord := SPACE( 10 ) // [FWH1234567]
   LOCAL oCursorBtn := TCursor():New(, 'HAND' )

   SetBalloon( .T. ) // Balloon shape required for tooltips
   SkinButtons()

   DEFINE BRUSH oBrush FILE "..\bitmaps\olga1.jpg" RESIZE  // Prefiro en RESOURCES.

   DEFINE FONT oFont NAME "VERDANA" SIZE 0, - 20
   DEFINE FONT oBold NAME "VERDANA" SIZE 0, - 24 BOLD

   DEFINE DIALOG oDlg SIZE 300, 400 PIXEL TRUEPIXEL FONT oFont BRUSH oBrush  ;
      TITLE "PassWord" TRANSPARENT

   oDlg:lHelpIcon := .F.

   @ 80, 40 SAY "Enter" + CRLF + "PassWord" SIZE 220, 80 PIXEL OF oDlg       ;
      FONT oBold CENTER COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

   @ 320, 05 SAY "By" + CRLF + "Nages" SIZE 220, 80 PIXEL OF oDlg            ;
      FONT oFont COLORS CLR_ORANGE, CLR_WHITE TRANSPARENT UPDATE

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

   @ 200, 40 GET oGet VAR cPassWord SIZE 220, 30 PIXEL OF oDlg UPDATE CENTER ;
      FONT oBold COLORS CLR_HRED, CLR_BLACK PASSWORD                         ;
      VALID( CHK_PASSWORD( oGet, cPassWord ) )

   oGet:cToolTip := "Informe PassWord"

   oGet:lPassWord := .T.

   @ 320, 100 BTNBMP oBtn PROMPT "&Exit" SIZE 100, 40 PIXEL OF oDlg FLAT     ;
      2007 TOP ACTION oDlg:End() FONT oFont

   oBtn:cTooltip := "Salida - Exit"

   oBtn:lCancel  := .T.
   oBtn:lEllipse := .T.
   oBtn:oCursor  := oCursorBtn

   ACTIVATE DIALOG oDlg CENTERED

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

   oFont:End()
   oBold:End()

   RELEASE BRUSH oBrush

RETURN NIL

FUNCTION CHK_PASSWORD( oGet, cPassW )

   IF GETASYNCKEY( VK_UP )

      cPassW := SPACE(10)

      oGet:VARPUT( cPassW )
      oGet:Refresh()

      RETURN( .F. )

   ENDIF

   IF EMPTY( cPassW )

      ? "Proibido"

      RETURN( .F. )

   ENDIF

   IF( cPassW ) = "FWH1234567"

      ? "VALID PASSWORD"

      RETURN( .T. )

   ELSE

      ? "INVALID PASSWORD"

   ENDIF

RETURN( .F. )

// FIN / END
 


Regards, saludos.

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Tue Mar 12, 2024 11:42 pm
by jbrita
Hola Armando
Image

con todo va

Code: Select all  Expand view

STATIC FUNCTION Chk_Pass()
*---------------
   LOCAL oDlg, Sigue:=.F., n:=0, nSer, kt
   LOCAL cCve:=Space(10), oCve, oPas, oFnt,oFnt1
   LOCAL cPas:=Space(10), cIni
   Local oBmp,oBmp1,oSay1,oSay2,oBmp2,oFondo,oCuadr1,cAgencias
   LOCAL aGets   := Array( 30 )
   LOCAL oBtns  := Array( 3 )
   Local aAGencia:={}
   Local xAGencia:={}

   Local cAge:=0 //Space(10)

cAgencias:=xServer:Query("SELECT * FROM agencia")
cAgencias:GoTop()
if cAgencias:LastRec() > 0
   Do While !cAgencias:Eof()
      AADD(aAgencia,AllTrim(cAgencias:ciudad )) //nombreagencia))     ciudad
      AADD(xAgencia,{AllTrim(cAgencias:agencia),cAgencias:turno,cAgencias:Fecha,cAgencias:impresora})

      cAgencias:Skip(1)
   ENDDO
Endif
cAgencias:End()


DEFINE FONT oFnt  NAME "MS Sans Serif" SIZE 0,15 BOLD
DEFINE FONT oFnt1 NAME "TAHOMA" SIZE 0,-18 BOLD

DEFINE BRUSH oFondo FILE ".\ima\aa.BMP"
DEFINE DIALOG oDlg RESOURCE "accexo" TRANSPARENT BRUSH oFondo    FONT oFnt1


      REDEFINE IMAGE oBmp  ID 100 OF odlg Resource "accexo" UPDATE

 
      oBmp:lTransparent:=.T.

         REDEFINE SAY aGets[1] PROMPT  "Usuario"    ID 17 OF oDlg FONT oFnt1
         REDEFINE SAY aGets[2] PROMPT  "Contraseña" ID 18 OF oDlg FONT oFnt1
         REDEFINE SAY aGets[3] PROMPT  "Agencia"    ID 13 OF oDlg FONT oFnt1

         REDEFINE COMBOBOX aGets[ 5] VAR cAge  ITEMS aAgencia  ID 101 OF oDlg

         REDEFINE GET oCve VAR cCve ID 11 OF oDlg PICTURE "@K!"   VALID Val_User(cCve,cAge,xAgencia)
         REDEFINE GET oPas VAR cPas ID 12 OF oDlg PICTURE "@K!"   VALID Val_Pass(cCve,cPas,cAge,@Sigue,@n,xAgencia)  FONT oFnt1


       REDEFINE BUTTONBMP oBtns[1] ID 501 OF oDlg  PROMPT "&Iniciar Sesion";
            WHEN Sigue .and. cAge#" " ;
            ACTION ( oDlg:End() ) BITMAP "bar_ace" TEXTRIGHT  CANCEL

       REDEFINE BUTTONBMP oBtns[2] ID 502 OF oDlg  PROMPT "  &Cancelar";
            ACTION (Sigue:=.F., oDlg:End() )  BITMAP "Cancelar" TEXTRIGHT  CANCEL

ACTIVATE DIALOG oDlg CENTERED
            agencia    :=aAgencia[cAge]   //cAge
            codagencia :=xAgencia[cAge,1] // cAge
            aTurnoVenta:=xAgencia[cAge,2]
            aFechaVenta:=xAgencia[cAge,3]
            cImpresora :=AllTrim(xAgencia[cAge,4])   //Impresoras


RETURN (Sigue)

STAT FUNC Val_User(cCve,cAge,xAgencia)
*------------------
LOCAL lRet:=.T.
Local cUsuarios


cUsuarios:=xServer:Query("SELECT * FROM usuarios Where usuario = '"+AllTrim(cCve)+"' AND agencia='"+ Alltrim(xAgencia[cAge,1])+"' ORDER BY usuario")
cUsuarios:GoTop()
if cUsuarios:LastRec()= 0
      MsgInfo("¡El usuario no existe, Verifique!","Precaución!")
      MsgBeep()
      lRet:=.F.
Else

 If Alltrim(xAgencia[cAge,1])==Alltrim(cUsuarios:agencia)
     aNomUsuario:=cUsuarios:Nombre
 Else
      MsgInfo("¡El usuario no pertenece a esta agencia!","Precaución!")
      lRet:=.F.

 endif
ENDIF
cUsuarios:End()

RETURN (lRet)

STAT FUNC Val_Pass(cCve,cPas,cAge,Sigue,n,xAgencia)
*-----------------
   LOCAL lRet:=.F., cPasw,oPrn
   Local cPassword
   Local cUsuarioS
   Local cpx,sSyst
   local fila:=1

   IF !Empty(cPas)


      cUsuarios:=xServer:Query("SELECT * FROM usuarios Where usuario = '"+AllTrim(cCve)+"' AND agencia='"+ Alltrim(xAgencia[cAge,1])+"' ORDER BY usuario")
      cUsuarios:GoTop()
      If cUsuarios:LastRec()> 0
         cPasw:=AllTrim(Decrypt(cUsuarios:password))
         oMenu:=cUsuarios:sistema

      ENDIF
      cUsuarios:End()

      cPas :=Alltrim(cPas)

      usuario:=cCve
      agencia:=cAge

      IF cPasw==Alltrim(cPas)
            lRet:=Sigue:=.T.
      Else
            Tone(100,5)
            MsgInfo("Verifique la contraseña...","Precaución!")
      ENDIF
      n++
   ELSE
      MsgBeep()
   ENDIF

   *alert(alltrim(Agencia))

RETURN (lRet)
 


un abrazo a la distancia

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Wed Mar 13, 2024 12:20 pm
by karinha
Buen dia jBrita, podrias por favor poner el archivo.rc donde está el recurso: "accexo" ?

Gracias.

Regards, saludos.

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Wed Mar 13, 2024 4:25 pm
by VitalJavier
[img]
Image
[/img]

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Wed Mar 13, 2024 5:36 pm
by karinha
VitalJavier wrote:[img]
Image
[/img]



Vital, mui bien. Y los Botones <Continuar> y <Salida> ?

Gracias.

Regards, saludos.

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Wed Mar 13, 2024 5:55 pm
by VitalJavier
Despues de Dara la contraseña
solo con el "Enter" ahi verifico datos.

Re: Imagen en login? (SOLUCIONADO)

PostPosted: Thu Mar 14, 2024 1:17 am
by Armando
Jóvenes del grupo:

Gracias por los múltiples ejemplos, tema solucionado.

Saludos