Page 1 of 1

Aun tengo el problema

Posted: Wed Jan 09, 2008 4:35 pm
by Blessed
Del foro he sacado varias ideas, y las he combinado:

Code: Select all

 /*
	FUNCION ESTATICA SoliAcces()
	Dialogo que validar las cuentas de usuarios para ingresar al sistema
*/	
STATIC FUNCTION SoliAcces()

	LOCAL oDClave, oBrush, oGet[2]

	MEMVAR oApp

	oApp:cUsuario := SPACE(10) 
	oApp:cClave   := SPACE(6)
   oApp:lLogID   := .F.
   
   DEFINE BRUSH  oBrush COLOR oApp:Color2007
	DEFINE DIALOG oDClave RESOURCE "DLG_ACCESO" HELPID 2 ;
	       BRUSH  oBrush TRANSPARENT

   REDEFINE GET oGet[1] VAR oApp:cUsuario ID 2 OF oDClave UPDATE PICTURE "@!"
   REDEFINE GET oGet[2] VAR oApp:cClave   ID 3 OF oDClave UPDATE PICTURE "@!" 

   ACTIVATE DIALOG oDClave CENTERED ;
            ON INIT AccToolBar( oDClave ) VALID ( oBrush:End(), .T.)

	oApp:aDerechos = DerechUser( oApp:cUsuario )

	RETURN oApp:lLogID


/*
	FUNCION ESTATICA AccToolBar()
	Agrega la barra de herramientas al dialogo
*/
STATIC FUNCTION AccToolBar( oDClave )

   LOCAL oBar

   DEFINE BUTTONBAR oBar SIZE 35, 35 DIALOG oDClave 2007

   DEFINE BUTTON OF oBar NAME "Clave"  TOOLTIP "Validar datos" ;
      ACTION IF( ValidaClave(), oDClave:End(), .T. )
   DEFINE BUTTON OF oBar NAME "Salir"  TOOLTIP "Salir" ;
      ACTION oDClave:End() GROUP

   RETURN NIL
 
Al definir el BUTTONBAR directamente en la funcion del dialogo me de todo tipo de errores, y en el foro encontre el poner la BUTTONBAR fuera.

Agradeciendo de antemano su ayuda :)

Posted: Wed Jan 09, 2008 4:52 pm
by Blessed
Al aparecer el mensaje de mayusculas, y el GET estar con password, los iconos de la BUTTONBAR, desaparecen y al pasar el mouse sobre ellos se realiza el repintado, no de otra manera

Saludos desde Honduras

Posted: Wed Jan 09, 2008 4:55 pm
by Blessed
Por cierto estoy usando la FiveWin 7.11 y xHarbour 0.9971

Posted: Wed Jan 09, 2008 5:41 pm
by Antonio Linares
Nosotros lo hemos probado aqui y no hemos conseguido reproducir el error.

Puedes enviarnos un EXE (en un fichero ZIP) que reproduzca el error ? gracias

Aqui te envio el codigo completo del BUTTONBAR

Posted: Mon Jan 14, 2008 5:41 pm
by Blessed

Code: Select all

 #include "FiveWin.ch"

function Main()

	LOCAL oDClave, oBrush, oGet[2]
	MEMVAR oApp

   PUBLIC oApp:= TMyApp()

	oApp:cUsuario  := SPACE(10) 
	oApp:cClave    := SPACE(6)
   oApp:lLogID    := .F.
	oApp:Color2007 :=  nRGB( 191, 219, 255 )
   
   DEFINE BRUSH  oBrush COLOR oApp:Color2007
	DEFINE DIALOG oDClave RESOURCE "DLG_ACCESO" HELPID 2 ;
	       BRUSH  oBrush TRANSPARENT

   REDEFINE GET oGet[1] VAR oApp:cUsuario ID 2 OF oDClave UPDATE PICTURE "@!"
   REDEFINE GET oGet[2] VAR oApp:cClave   ID 3 OF oDClave UPDATE PICTURE "@!" 

   ACTIVATE DIALOG oDClave CENTERED ;
            ON INIT AccToolBar( oDClave ) VALID ( oBrush:End(), .T.)

	RETURN oApp:lLogID


/*
	FUNCION ESTATICA AccToolBar()
	Agrega la barra de herramientas al dialogo
*/
STATIC FUNCTION AccToolBar( oDClave )

   LOCAL oBar

   DEFINE BUTTONBAR oBar SIZE 35, 35 DIALOG oDClave 2007

   DEFINE BUTTON OF oBar NAME "Clave"  TOOLTIP "Validar datos" ;
      ACTION IF( ValidaClave(), oDClave:End(), .T. )
   DEFINE BUTTON OF oBar NAME "Salir"  TOOLTIP "Salir" ;
      ACTION oDClave:End() GROUP

   RETURN NIL

/*
	FUNCION ESTATICA ValidaClave( cUsuario, cClave, oGet )
	Donde:
				- cUsuario 	ID del usuario
				- cClave    Clave del usuario
				- oGet   	Incluye el objeto de los Get´s

	Funcion que valida los datos del Get de codigo de Gastos
*/	
STATIC FUNCTION ValidaClave()

	LOCAL lValRet := .F., cMy_User, cMy_Clave 
	
	MEMVAR oApp, oData_Odbc

	IF !EMPTY( oApp:cClave )
		lValRet := .T.
	ELSE
		lValRet := .F.
      MsgStop( "Nombre de Usuario o clave no valida" , "Atención" )
	ENDIF

	oApp:lLogID := lValRet

	RETURN lValRet

/*
	CLASE TMyApp
	Datos de configuracion del sistema que seran publicos
*/
CLASS TMyApp

	DATA cUsuario     INIT "SUPERVISOR"
   DATA cClave       INIT "Max"
   DATA lLogID       INIT .F.

   DATA Color2007    INIT 0

ENDCLASS
	
&&----------------------------------------------------------------------------&&

PROCEDURE AppSys && XBase++ requirement

RETURN

&&----------------------------------------------------------------------------&&
y lo que es el archivo RC es el siguiente :

Code: Select all

 /* 
contab.rc

produced by Borland Resource Workshop
*/
1 24 "WindowsXP.Manifest"

#include "..\..\fwh\include\winapi.ch"

Clave   BITMAP "bitmaps/clave.bmp"
Salir   BITMAP "bitmaps/salir.bmp"

DLG_ACCESO DIALOG 61, 100, 95, 72
STYLE DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION
CAPTION "ID Usuario"
FONT 8, "Tahoma"
{
 EDITTEXT 2, 39, 36, 46, 12, WS_BORDER | WS_TABSTOP
 EDITTEXT 3, 39, 51, 46, 12, ES_PASSWORD | WS_BORDER | WS_TABSTOP
 LTEXT "Usuario", -1, 10, 38, 28, 10
 LTEXT "Clave", -1, 10, 53, 24, 10
}

Master Antonio

Posted: Mon Jan 14, 2008 9:06 pm
by Blessed
Saludos Antonio:

Recien te envie via Email el ejecutable.
El sistema operativo es Windows XP Home Edition.
Lo he corrido en equipos con Windows XP Pro, y ocurre la misma anomalia :!:

Posted: Tue Jan 15, 2008 6:03 am
by Antonio Linares
Si, hemos visto el error. Ocurre en XP, en Vista funciona bien.

Prueba a hacer lo siguiente:
oDlg:bMoved = { || oBar:Refresh() }

por lo visto solo ocurre al mover la caja de diálogo una vez que ha salido el aviso de las mayúsculas. Por lo menos, aqui solo falla en esa situación.

Posted: Tue Jan 15, 2008 9:30 pm
by Blessed
Saludos Antonio:

Gracias por tu tiempo, lo probare de inmediato

Saludos

Posted: Tue Jan 15, 2008 9:49 pm
by Blessed
Saludos Antonio:

Hice lo que sugieres
Prueba a hacer lo siguiente:
oDlg:bMoved = { || oBar:Refresh() }
Y no surte ningun efecto.
Con solo estar posicionado en el Get con Password, y pulsar mayusculas un par de veces, se ve el problema.

Segun parece ...

Posted: Tue Jan 22, 2008 9:01 pm
by Blessed
Saludos Antonio:

Al quitar la clausula 2007 de la BUTTONBAR, el comportamiento es diferente, los iconos no se repintan al pasar por el mouse, si no hasta que se hace click en el mismo y aparece nuevamente el icono.
Segun parece, seria cuando en una ventana de dialogo hija quieras insertar una BUTTONBAR.

Saludos desde Honduras

Posted: Wed Jan 23, 2008 9:59 pm
by Blessed
Saludos Antonio:

Heme aqui con este lio de las BUTTONBAR en ventanas hijas (MDI).
Es aqui cuando se da este lio, me podrias dar algun hilo para tomar este asunto para evitar este comportamiento en la clase.

Saludos desde Honduras.

Posted: Wed Jan 23, 2008 10:34 pm
by Antonio Linares
El problema solo aparece en ventanas MDICHILD que usan buttonbars con la claúsula 2007 y cuando están activadas las mayúsculas ?

Puedes proporcionarnos un PRG de ejemplo ? Es distinto al EXE que me enviastes ? gracias

Posted: Sat Jan 26, 2008 3:43 pm
by Blessed
Saludos Antonio:
No es distinto al que te envie.
El ejemplo que te envie no es MDI, y tambien pasa sin la clausula 2007
Saludos desde Honduras.

Posted: Sat Jan 26, 2008 3:48 pm
by Blessed
Saludos Antonio:

Creo que la socucion de momento seria no usar en un dialgo (no una ventana) un BUTTONBAR, y usar otro estilo de botones.
A menos que se se de una salida en un futuro ya que me actualice a FiveWin 8.01 y da los mismos resultados; se que es un duro trabajo tratar con cada tipo de enventualidades, estare al pendiente.

:!: Fivewin el mejor entorno de desarrollo :!:

Saludos desde Honduras.