PDA

Ver la Versión Completa : ValidationExpression que acepte numeros y guiones


YaninaGenia
02-08-2006, 16:33:33
Buenassss
Tengo un box que carga numeros telefonicos. El usuario carga sin formato, es decir, puede o no ingresar codigo de pais, codigo de provincia, etc. Lo que yo quiero es permitir que SOLO ingrese numeros o guiones. Yo arme algo asi:

ValidationExpression="-?\d*"

Y deja o no poner el guion, que esta bien, pero solo lo permite adelante. Lo que necesito es que el usuario ponga el guion donde quiera, es decir, no tiene que seguir ningun formato, numeros y guiones infinitos.

Yanina Genia

YaninaGenia
08-08-2006, 15:12:10
Ya encontre como hacerlo, es

ValidationExpression="([0-9]|-)*"

ManiacPC
02-09-2007, 16:05:25
Este codigo es de saiyine,
en la cadena CAD eliges lo que pondrás, (en el ejemplo es para un edit hexadecimal)
Me parece bastante util en tiempo real, pones el procedimiento en OnChange y evitas los pillos pegados y validaciones posteriores.



procedure TForm1.FiltroEdit(Sender: TObject);
var
i : integer;
aux,aux2,cad : string;
begin
cad:='0123456789abcdefABCDEF'; // Solo se admiten estos caracteres
aux2:='';
with (Sender as TEdit) do
begin
aux:=text;
for i:=1 to length(aux) do
if pos(aux[i],cad)>0 then aux2:=aux2+aux[i];
text:=aux2;
SelStart:=length(aux2);
end;
end;

Saludos

__hector
03-09-2007, 19:21:27
El codigo lo veo bien. Pero habria que programar cada validacion a mano (en el sentido de asociar el metodo que maneja el evento de cada textbox al codigo), cosa que nos evitamos al utilizar expresiones regulares.

Vamos, que es preferible, antes de reinventar la rueda y escribir rutinas para verificar las entradas de usuario, utilizar expresiones regulares, que son mucho mas poderosas y flexibles, y hace un tiempo ya que existen.

ManiacPC
27-09-2007, 01:22:26
Vaya, si que tienes razón,
Que arcaíco el pensar de mi parte que hay que realizar código para todo.

No conocía las expresiones regulares en delphi ^^
http://www.latiumsoftware.com/es/articles/00009.php
Ese boletín también será de ayuda.

Saludos