Página 1 de 2
Bloquear caracteres en los Imput
Publicado: 11 Abr 2013 08:23
por dimatiguz
Buenas, escribo porque tengo un problemita que no he podido resolver y es el siguiente:
estoy haciendo una aplicación para hacer cálculos de una materia en especifica para la universidad y quisiera limitar los imput a que solo se le pudiera introducir números, es decir que no deje introducir letras ni símbolos, solamente permita numeros y punto para los decimales; es decir que también bloquee la coma (se le puede colocar un mensaje de carácter no permitido) Gracias de antemano
Publicado: 11 Abr 2013 11:11
por Ceone
Existe un ejemplo que solo permite numeros pero no puntos...
ON GLOBAL:
function InputSoloNumeros(HwndInput)
Args1 = string.format("%d,%d", HwndInput, -16)
GetWinLong = DLL.CallFunction("user32.dll", "GetWindowLongA", Args1, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
Args2 = string.format("%d,%d,%d", HwndInput, -16, GetWinLong + 8192)
DLL.CallFunction("user32.dll", "SetWindowLongA", Args2, DLL_RETURN_TYPE_LONG, DLL_CALL_STDCALL);
end
ON SHOW:
InputSoloNumeros((Input.GetProperties("Input1").WindowHandle))
- HIDE: ON
- Hidebb Message Hidden Description
Yo asi a voz de pronto no lo se modificar lo mismo Pabloko, Rafax o el creador de esta función CoCo_InC pueden pero yo y USER32 no somos muy amigos, he pensado en alguna DLL usando c# pero el problema que al modificar un input siempre vuelve al primer dígito, se me ocurre una manera de hacer que no haga eso pero es ultra chapucera, que es fijando las dimensiones y posición y haciendo click al final del objecto cuando falle, pero es un poco chapuza... lamento no poder serte de mas ayuda...
Re: Bloquear caracteres en los Imput
Publicado: 11 Abr 2013 12:07
por sattel
buen ejemplo
Publicado: 12 Abr 2013 00:54
por dimatiguz
Muchas Gracias por responder, yo tengo un tiempito intentando y nada, en las opciones de mascara de los input se pueden poner ##### pero no deja introducir decimales, cualquier si logran hacer algo me avisan, porque por cuestion de estetica se vería muy bien con las letras bloqueadas o que pudieras bloquear los caracteres que quisieras, muchas gracias nuevamente, saludos
Publicado: 12 Abr 2013 02:33
por Agotaras123
#,###.##
Publicado: 12 Abr 2013 04:41
por dimatiguz
Agotaras123 escribió:#,###.##
eso no funciona
Publicado: 12 Abr 2013 07:45
por tam
Thanks
Publicado: 13 Abr 2013 13:30
por abood1987
Very good
Ceone .
Or by this code in On Char :
function IsNumeric(sValueIn)--Worm Function --I think this is a sagacity in trick!
if String.Length(string.gsub(sValueIn, "[1234567890]", "")) == 0 then
return true
else
return false
end
end
bTF =IsNumeric(Input.GetText("Input1"));
if bTF then
Dialog.Message("", "true = it is numerical");
else
Dialog.Message("", "false = it is not numerical");
end
Publicado: 13 Abr 2013 14:11
por rafaxplayer
abood1987 escribió:Very good
Ceone .
Or by this code in On Char :
function IsNumeric(sValueIn)--Worm Function --I think this is a sagacity in trick!
if String.Length(string.gsub(sValueIn, "[1234567890]", "")) == 0 then
return true
else
return false
end
end
bTF =IsNumeric(Input.GetText("Input1"));
if bTF then
Dialog.Message("", "true = it is numerical");
else
Dialog.Message("", "false = it is not numerical");
end
Esta muy bien abood , pero en vez del conjunto de patrones "[1234567890]" con "%d" ya estaria correcto.
Publicado: 13 Abr 2013 17:42
por abood1987
rafaxplayer escribió:"[1234567890]" con "%d" ya estaria correcto.
thank very much rafax
Publicado: 13 Abr 2013 20:07
por abood1987
Hello again
you Can also do that by MemoryEx Action Plugin v
2.1.0.0 Look at this topic to downLoad
viewtopic.php?f=15&t=1715
this is an example apz :
- HIDE: ON
- Hidebb Message Hidden Description
Note : First download MemoryEx Action Plugin v 2.1.0.0 and put it in this path
Offtopic:
"C:\Program Files\AutoPlay Media Studio 8\Plugins\Actions"
Publicado: 14 Abr 2013 18:17
por dimatiguz
Muchísimas Gracias a todos me funcionó excelente... al final lo necesitaba así:
function IsNumeric(sValueIn)--Worm Function --I think this is a sagacity in trick!
if String.Length(string.gsub(sValueIn, "[1234567890.]", "")) == 0 then
return true
else
return false
end
end
bTF =IsNumeric(Input.GetText("Input1"));
if bTF then
else
Dialog.Message("Error", "Introduzca un valor numerico valido");
Input.SetText("Input1", "");
end
Publicado: 14 Abr 2013 19:42
por dimatiguz
Lo unico malo es que limpia es el input completo en vez del valor no permitido
Publicado: 14 Abr 2013 21:05
por rafaxplayer
Bueno yo he estado trasteando un ratillo y al final he sacado esto:
function IsNumeric(char)
local b;
for x = 1,10 do
if( String.Char(char) == tostring(x) or String.Char(char) == "0")then-- si el char es numerico 1234567890
b =true;
break; --rompemos bucle
else-- si no lo es retrona falso
b=false;
end
end
return b;--retorno bool
end
function deletelastchar(objInput)-- funcion para borrar el ultimo caracter del input, menudo royo hay que montar en AMS pa esta tarea de mierda :P
s = Input.GetText(objInput);-- gettext
Input.SetSelection(objInput,s:len(),-1);-- selccionamos ultimo caracter
Input.Delete(objInput);-- delete...
end
b=IsNumeric(e_Char);-- comprobamos si e_char es nuemrico o no.
if b == false then--Si es falso el retorno de IsNumeric , el valor no es nuemrico
deletelastchar(this);-- eliminamos ultimo caracter.
end
Con este codigo en el evento On char del input , conseguimos que cuando el carácter no sea numérico simplemente lo borre , si queréis dar algún mensaje solo tenéis que usar el retorno de la funcion isnumeric para filtrar.
Ahora se me ocurre que a lo mejor copiando bloque de texto no funcione correctamente, pero tecleando caracteres uno a uno si ;P un saludote.
Publicado: 14 Abr 2013 22:35
por dimatiguz
Muchas Gracias lo probaré enseguida
Re: Bloquear caracteres en los Imput
Publicado: 14 Abr 2013 23:42
por dimatiguz
No me funciona
lo selecciona pero no lo borra
Publicado: 15 Abr 2013 06:36
por rafaxplayer
bueno te lo borra en cuanto escribes el siguiente carácter , luego lo mirare de afinar mas haber si puedo
Publicado: 15 Abr 2013 06:50
por bariza-dz
thanks
Publicado: 15 Abr 2013 08:10
por dimatiguz
Si vaaa, muchas gracias, tambien me acabo de dar cuenta que no me deja poner decimales
Publicado: 16 Abr 2013 09:22
por Ceone
dimatiguz escribió:Si vaaa, muchas gracias, tambien me acabo de dar cuenta que no me deja poner decimales
si.... ya... en mi respuesta lo pongo bien claro, kizas usando el plugin Memory se podria hacer algo... seria cuestión de mirarlo...