Hola a todos,
Como debo especificar un PICTURE para un GET de una variable carácter (no numérica), que acepte sólo cifras y el punto (.)?
No doy con ello.
Muchas gracias,
....
@ 2, 2 GET oGet VAR cText OF oDlg VALID(Validar(cText))
...
STATIC FUNCTION Validar(c)
LOCAL cRegEx := hb_regexComp("^[0-9]+([.][0-9]+)?$")
LOCAL aMatch
aMatch = hb_regex( cRegEx, c )
if Empty(aMatch)
MsgInfo('No válido')
endif
return !Empty(aMatch)
cmsoft wrote:Si el punto siempre tiene que estar en la misma posicion, es posible usar el PICTURE "99999.99" (Esto tambien te dejará poner espacios)
En caso que el punto pueda estar en cualquier lado, puedes validarlo con una expresión regular
- Code: Select all Expand view
....
@ 2, 2 GET oGet VAR cText OF oDlg VALID(Validar(cText))
...
STATIC FUNCTION Validar(c)
LOCAL cRegEx := hb_regexComp("^[0-9]+([.][0-9]+)?$")
LOCAL aMatch
aMatch = hb_regex( cRegEx, c )
if Empty(aMatch)
MsgInfo('No válido')
endif
return !Empty(aMatch)
function GetDigits()
local oDlg, oGet, cGet, cPic
cGet := Space( 8 )
cPic := "99999.99"
DEFINE DIALOG oDlg SIZE 300,160 PIXEL TRUEPIXEL
@ 40,40 GET oGet VAR cGet PICTURE cPic SIZE 100,20 PIXEL OF oDlg
@ 80,40 BUTTON "OK" SIZE 60,40 PIXEL OF oDlg ACTION MsgInfo( cGet )
ACTIVATE DIALOG oDlg CENTERED
? cGet
return nil
nageswaragunupudi wrote:Please try:
- Code: Select all Expand view
function GetDigits()
local oDlg, oGet, cGet, cPic
cGet := Space( 8 )
cPic := "99999.99"
DEFINE DIALOG oDlg SIZE 300,160 PIXEL TRUEPIXEL
@ 40,40 GET oGet VAR cGet PICTURE cPic SIZE 100,20 PIXEL OF oDlg
@ 80,40 BUTTON "OK" SIZE 60,40 PIXEL OF oDlg ACTION MsgInfo( cGet )
ACTIVATE DIALOG oDlg CENTERED
? cGet
return nil
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: Google [Bot] and 45 guests