FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour TGET Ignore VALID
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

TGET Ignore VALID

Posted: Tue Dec 24, 2013 11:55 AM

Sr. Antonio, código abaixo demonstra que é possível ignorar o VALID de um GET pressionando VK_F3.

local oDlg, cTest := SPACE(20), oBut[2]

DEFINE DIALOG oDlg TITLE "VK_F3 ignore VALID"

odlg:bkeydown:={|nkey| if(nkey==VK_F3,oBut[1]:click(),)}

@ 1, 3 GET cTest picture "@!" valid .f.

@ 3, 5 BUTTON oBut[1] prompt "&Ok" SIZE 40, 12 ACTION MsgInfo( "Any action here. Ignore VALID problem!" )

@ 3, 16 BUTTON oBut[2] prompt "&Cancel" SIZE 40, 12 ACTION oDlg:End() cancel

ACTIVATE DIALOG oDlg CENTERED

Existe uma solução para este problema?

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: TGET Ignore VALID

Posted: Thu Dec 26, 2013 04:06 PM

Please try it this way:

@ 1, 3 GET oGet VAR cTest picture "@!" valid .f.

odlg:bkeydown:={|nkey| if(nkey==VK_F3 .and. oGet:lValid(),oBut[1]:click(),)}

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 389
Joined: Wed Nov 29, 2006 01:51 PM

Re: TGET Ignore VALID

Posted: Thu Dec 26, 2013 04:27 PM

Antonio,

El tema es si tenes mas de 1 control (GET), debes hacer eso x cada uno ?? Xq sino se dispara igual...

Salu2, Ariel.

Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: TGET Ignore VALID

Posted: Thu Dec 26, 2013 04:30 PM

Se podría hacer:

odlg:bkeydown:={|nkey| if(nkey==VK_F3 .and. oWndFromHwnd( GetFocus() ):lValid(),oBut[1]:click(),)}

lo que no entiendo cual es la razón de asignar ese codeblock al diálogo.

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

Re: TGET Ignore VALID

Posted: Thu Dec 26, 2013 04:57 PM

Senhor Antonio,

é possível uma alteração na classe TGET ou TBUTTON para evitar alteração no sistema inteiro?

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 44162
Joined: Thu Oct 06, 2005 05:47 PM

Re: TGET Ignore VALID

Posted: Thu Dec 26, 2013 07:12 PM
Please try this change in Class TButton in Method Click line 162 and let me know if it is fine for you:

Code (fw): Select all Collapse
      if ::bAction != nil .and. ::lValid()  // here !!!
         Eval( ::bAction, Self )
      endif
regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

Re: TGET Ignore VALID

Posted: Fri Dec 27, 2013 10:57 AM

muito obrigado, vou testar e posto o resultado!

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

Re: TGET Ignore VALID

Posted: Fri Dec 27, 2013 01:14 PM

Sr. Antonio,

Não funciona:

if ::bAction != nil .and. ::lValid() // here !!!
Eval( ::bAction, Self )
endif

:(

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin
Posts: 2706
Joined: Fri Oct 07, 2005 01:50 PM

Re: TGET Ignore VALID

Posted: Fri Dec 27, 2013 02:10 PM
SGS

Forgive my spanish .. if you are trying to close a dialog without the valid firing try this ..

Code (fw): Select all Collapse
oBtn[2]:lCancel := .t.


Rick Lipkin
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: TGET Ignore VALID

Posted: Fri Dec 27, 2013 02:55 PM
SGS wrote:Sr. Antonio,

Não funciona:

if ::bAction != nil .and. ::lValid() // here !!!
Eval( ::bAction, Self )
endif

:-)


Prueba asi:
Code (fw): Select all Collapse
#include "fivewin.ch"

Function Main()

local oDlg
local cTest := SPACE(20)
local oBut  := { , } //[2]
local oGet

DEFINE DIALOG oDlg TITLE "VK_F3 ignore VALID"

//oDlg:bKeydown := {| nkey | if( nkey == VK_F3, oBut[1]:click(), )}
oDlg:bKeydown := {| nkey | if( nkey == VK_F3, PulsaF3( oDlg, oBut ), )}

@ 1, 3 GET oGet VAR cTest picture "@!" valid ( .F. )

@ 3, 5 BUTTON oBut[1] prompt "&Ok" SIZE 40, 12 ACTION MsgInfo( "Any action here. Ignore VALID problem!" )

@ 3, 16 BUTTON oBut[2] prompt "&Cancel" SIZE 40, 12 ACTION oDlg:End() CANCEL

ACTIVATE DIALOG oDlg CENTERED

Return nil

//---------------------------------------------------

Function PulsaF3( oDlg, oBtt )

if oDlg:oCtlFocus:lValid()
   oBtt[1]:click()
else
   oDlg:oCtlFocus:SetFocus()
endif
Return nil
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 6755
Joined: Wed Feb 15, 2012 08:25 PM

Re: TGET Ignore VALID

Posted: Fri Dec 27, 2013 07:40 PM
Funciona igual si se modifica la Clase TWindow en el metodo KeyDown


Code (fw): Select all Collapse
METHOD KeyDown( nKey, nFlags ) CLASS TWindow

...../...

   if ::oWnd != nil .and. IsChild( ::oWnd:hWnd, ::hWnd )
      
       if ::oWnd:oCtlFocus:lValid()                // He añadido
         ::oWnd:KeyDown( nKey, nFlags )
      endif                                                  // 
   endif

return nil
Cristobal Navarro

Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo

El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
Posts: 1286
Joined: Mon Feb 25, 2008 02:54 PM

Re: TGET Ignore VALID

Posted: Tue Dec 31, 2013 12:19 AM

Muito obrigado, vou testar!

ubiratanmga@gmail.com

FWH24.04
BCC7.3
HARBOUR3.2
xMate
Pelles´C
TDolphin

Continue the discussion