Ver la Versión Completa : TEdit primer digito no sea número
alquimista
24-07-2013, 22:07:51
Muy buenas...
¿Cual seria el mejor sitio (evento o método) para comprobar que el primer dígito de un Tedit no sea un número?
He puesto en el keypress que solo sean caractereres alfanumericos.
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If not (Key in ['A'..'Z','a'..'z','0'..'9','e','E','.','-','+','_',#8]) then Key:=#0;
end;
Casimiro Notevi
24-07-2013, 22:51:28
Quizás te convenga mejor usar una máscara, un TEditMask
Porque de esa manera tienes que comprobar que es el primer dígito y sería más fácil hacerlo en el onexit o en el onchange del edit.
Por eso, mejor, cambia el tedit por un teditmask.
ecfisa
24-07-2013, 23:06:49
Hola alquimista.
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do
ReadOnly := (SelStart + SelLength = 0) and (Key in ['0'..'9']);
end;
Saludos :)
Casimiro Notevi
25-07-2013, 00:05:32
No se me habría ocurrido hacerlo así :eek:
Es más, ¿eso funciona? :D
alquimista
25-07-2013, 00:09:04
Y le añado lo primero que puse???
Y si quiero limitarlo a un número determinado de caracteres???
vale con poner: or (SelStart + SelLength >x) ??
procedure TForm1.EditKeyPress(Sender: TObject; var Key: Char);
begin
with Sender as TEdit do
ReadOnly := (SelStart + SelLength = 0) and (Key in ['0'..'9']) OR ((SelStart + SelLength >longitud);
end;
PD: Me parece impresionante...
Gracias..
Casimiro Notevi
25-07-2013, 00:14:13
Y le añado lo primero que puse???
No
.
:)
alquimista
25-07-2013, 00:21:34
Es que si no no me deja borrar caracteres.
En realidad solo quiero este juego de caracteres y que el primero sea letra o _ y limitado a 32 caracteres (numeros o letras o _ solo)
if not (Key in ['A'..'Z','a'..'z','0'..'9','_',#8]) then Key:=#0;
Pero lo pongo detras de lo de ecfisa.
PD:Lo de limitarlo no me va ya que al rebasar la longitud no me deja ni borrar.
Sorry: lo de la longitud se hace con la propiedad MAxLength
oscarac
25-07-2013, 00:24:26
No se me habría ocurrido hacerlo así :eek:
Es más, ¿eso funciona? :D
si funciona, lo curioso es que en ninguna literatura encontre esas propiedades :eek:
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.