Haga clic en el BITMAP no obedece WHEN GET

Haga clic en el BITMAP no obedece WHEN GET

Postby alexpdasilva » Tue Mar 17, 2015 4:12 am

Hola a todos.

Lo siento por la traducción.

Tengo un problema serio cuando tengo dos GETS y uno necesita del otro validado con el fin de ejecutar la acción, haga clic en la segunda BMP no obedece al WHEN do GET. ¿Qué hacer para corregirlo?

sigue un tramo de código de prueba:

redefine Get oGet1 var cCodigo picture '99999' id 101 of oDlg_0051 valid( val_0051() ) action( Eval( bLista01 ) ) Bitmap "Lupa2" update
oGet1:lBtnTransparent := .t.
oGet1:bKeyDown := { | nKey | if( nKey = VK_F2, Eval( bLista01 ), NIL ) }
oGet1:cToolTip := 'Informe o número da Conta '
bLista01 := {|| cCodigo := ListaCC( cCodigo, oGet1 ) }

redefine Get oGet2 var cProduto picture '999' id 102 of oDlg_0051 valid( val_0051a() ) action( Eval( bLista02 ) ) Bitmap "Lupa2" update WHEN .f.
oGet2:lBtnTransparent := .t.
oGet2:bKeyDown := { | nKey | if( nKey = VK_F2, Eval( bLista02 ), NIL ) }
oGet2:cToolTip := 'Informe o número da Conta '
bLista02 := {|| cProduto := ListaProduto( cProduto, oGet2 ) }

En este caso, incluso con WHEN .F. clic desencadena la función.

qué hacer para hacer clic en el BMP respetar el WHEN de GET?

gracias a todos

Alexandre Pereira
Belo Horizonte/MG - Brasil
alexpdasilva
 
Posts: 11
Joined: Tue Mar 17, 2015 3:50 am

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Antonio Linares » Tue Mar 17, 2015 7:28 am

Alexandre,

Que versión de FWH usas ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby alexpdasilva » Tue Mar 17, 2015 1:58 pm

Olá Antonio.

FWH 14.12.

Regards,

Alexandre Pereira
alexpdasilva
 
Posts: 11
Joined: Tue Mar 17, 2015 3:50 am

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Antonio Linares » Tue Mar 17, 2015 4:06 pm

Prueba a añadir esto:

oGet2:oBtn:Disable()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby alexpdasilva » Wed Mar 18, 2015 3:18 am

Gracias Antonio,

Pero hay muchos objetos y el programa es enorme, pensé que tal vez cambio el TGet pero estoy encontrando dificuldados porque BMP es otro objeto.

Simplemente no me hago el cambio en TGet sin comprometer el resto del sistema.

¿Tiene algún otro consejo?

Gracias,

Alexandre Pereira
alexpdasilva
 
Posts: 11
Joined: Tue Mar 17, 2015 3:50 am

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Antonio Linares » Wed Mar 18, 2015 7:44 am

Alexandre,

La solución idónea entonces es definir el Método Disable() en la Clase TGet de esta forma:

METHOD Disable() INLINE ::Super:Disable(), ::oBtn:Disable()
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby alexpdasilva » Wed Mar 18, 2015 3:57 pm

Maestro,

La forma en que ha pasado dio error. Sin embargo, cambié el TGet y así lo hizo:

METHOD CreateButton() CLASS TGet
...
::oBtn:lCancel = .f. // Inicia FALSO para ser habilitado na GOTFOCUS (Alexandre Pereira)
...


METHOD LostFocus( hCtlFocus ) CLASS TGet
...
// Desabilitando quando sair
if ! Empty( ::oBtn )
::oBtn:lCancel := .f.
endif
...

METHOD GotFocus( hCtlLost ) CLASS TGet
...
if ! Empty( ::oBtn )
::oBtn:lCancel := .t.
endif
...


Ahora está trabajando de la manera correcta, respetando las VALIDSs otro GETS.


Cuando la modificación se incorpora en los nuevos FIVES retiro la TGET.PRG de mi proyecto.

Gracias por la atención.

Alexandre Pereira
alexpdasilva
 
Posts: 11
Joined: Tue Mar 17, 2015 3:50 am

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Antonio Linares » Wed Mar 18, 2015 4:09 pm

Alexandre,

Pero la DATA lCancel no es para habilitar y deshabilitar un botón. lCancel se usa para que el botón se salte la validación del control en curso.

Es extraño que te funcione bien con eso.

Que error te dió el código que te sugerí ?
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby alexpdasilva » Wed Mar 18, 2015 4:55 pm

Antonio,

Realmente lCancel es despreciar la válida, sin embargo, esto afecta cuando el botón está dentro del GET. Así que estaba aceptando el clic y la realización de la acción y haciendo caso omiso de la otra valid de la GET (que debía ser validada). Como cambió no falla para validar el otro "GET" y trabaja estrechamente con el GET que está inmersa.


El formulario anterior el GET funcionaba perfecto, pero el CLICK sobre BITMAP ignorando Válidos otro GET.

En cuanto al error que dio en la declaración del método DISABLE:

...
Size: 7,224,320 bytes
Compiler version: xHarbour 1.2.3 Intl. (SimpLex) (Build 20141106)
FiveWin Version: FWHX 14.12
Windows version: 6.1, Build 7600

Time from start: 0 hours 0 mins 0 secs
Error occurred at: 18/03/2015, 13:42:37
Error description: Error BASE/1004 Class: 'NIL' has no exported method: DISABLE

Args:
[ 1] = U

Stack Calls
===========
Called from: => DISABLE( 0 )
Called from: P:\Desenv\DeclaCRED\funcoes\tget.000 => (b)TGET:TGET( 148 )
Called from: => TGET:DISABLE( 0 )
Called from: .\source\classes\WINDOW.PRG => TDIALOG:AEVALWHEN( 2883 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:INITIATE( 708 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 890 )
Called from: => DIALOGBOX( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 286 )
Called from: P:\Desenv\DeclaCRED\DeclaCRED.prg => MAIN( 88 )


Una vez más, perdóname por la traducción.

Alexandre Pereira
alexpdasilva
 
Posts: 11
Joined: Tue Mar 17, 2015 3:50 am

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Antonio Linares » Wed Mar 18, 2015 7:52 pm

Alexandre,

Pruébalo asi:

METHOD Disable() INLINE ::Super:Disable(), If( ::oBtn != nil, ::oBtn:Disable(),)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby alexpdasilva » Wed Mar 18, 2015 8:11 pm

Maestro,

Aún aceptando haga clic en el BMP.

El problema está realmente en lCancel, se activa el botón para recibir el clic incondicionalmente.

Como lo hizo antes está la solución.

Gracias.
alexpdasilva
 
Posts: 11
Joined: Tue Mar 17, 2015 3:50 am

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Antonio Linares » Wed Mar 18, 2015 8:46 pm

Alexandre,

Si te funciona bien, entonces perfecto :-)

gracias!
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Antonio Linares » Thu Mar 19, 2015 12:42 pm

Alexandre,

Implementado para el próximo FWH 15.03

muchas gracias! :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby alexpdasilva » Fri Mar 20, 2015 6:28 pm

Gracias Maestro.
alexpdasilva
 
Posts: 11
Joined: Tue Mar 17, 2015 3:50 am

Re: Haga clic en el BITMAP no obedece WHEN GET

Postby Silvio.Falconi » Mon Mar 23, 2015 10:31 am

Antonio,
a modify can be important to AutoGet Class
I wish insert a button on this type of Tget but it not run
then the user can use autoget fill data or press the button to lookup and select the data from file
I think this modify can be easy but I not Know How do it
is there some Gurus ?
Since from 1991/1992 ( fw for clipper Rel. 14.4 - Momos)
I use : FiveWin for Harbour November 2023 - January 2024 - Harbour 3.2.0dev (harbour_bcc770_32_20240309) - Bcc7.70 - xMate ver. 1.15.3 - PellesC - mail: silvio[dot]falconi[at]gmail[dot]com
User avatar
Silvio.Falconi
 
Posts: 6772
Joined: Thu Oct 18, 2012 7:17 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 94 guests