Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-12-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
validar tedit que primer caracter no sea 0

hola a todos , bueno tengo un problema con un tedit en el cual ya lo valide para q solo se ingrese numeros, pero necesitaria que el primer caracter no sea 0, que si ingresa 0 no lo permita, solo el primer caracter gracias. probe
Código Delphi [-]
 if not(Key in ['0'..'9',#8]) or (Edit2.SelStart=0)then
  begin
    Key:=#0;
    BEEP;
  end;
pero no me deja ingresar nada como deberia ser gracias de nuevo
Responder Con Cita
  #2  
Antiguo 07-12-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Código Delphi [-]
begin
if not(Key in ['0'..'9',#8]) or (((Sender as TEdit).SelStart = 0) and (Key = '0')) then
    Key:=#0;
end;

Saludos.
Responder Con Cita
  #3  
Antiguo 07-12-2010
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Creo que el problema está en "Edit2.SelStart". Elimina esa comprobación.

[edito] Se me adelantó "escafandra".
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #4  
Antiguo 07-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not(Key in ['0'..'9',#8]) then
  begin
    Key:=#0;
    BEEP;
  end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
 If Edit1.Text[1]='0' then
 begin
 ShowMessage('El primer valor no puede ser cero.');
 Edit1.Text:=Copy(Edit1.Text,2,Length(Edit1.Text));
 end;
end

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 07-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola gonza.

Otro modo puede ser:
Código Delphi [-]
 
  if not (Key in ['0'..'9',#8]) or ((Key='0') and (Length(TEdit(Sender).Text)=0)) then
  begin
     Beep;
     Key:=#0;
  end;

Saludos.

Última edición por ecfisa fecha: 07-12-2010 a las 16:24:07.
Responder Con Cita
  #6  
Antiguo 07-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Hola Ecfisa, el problema que veo que con ese código es que si tecleas por ejemplo:

1234

y luego añades el 0 a la izquierda te deja saltarte la norma.

01234


Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 07-12-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por marcoszorrilla Ver Mensaje
Hola Ecfisa, el problema que veo que con ese código es que si tecleas por ejemplo:

1234

y luego añades el 0 a la izquierda te deja saltarte la norma.

01234


Un Saludo.
Pues... tenés toda la razón.

Un saludo.
Responder Con Cita
  #8  
Antiguo 07-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
He hecho algunos cambios porque detecté un fallo si se empieza tecleando un 0.
Código Delphi [-]
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
 if not (Key in ['0'..'9',#8])  then
  begin
     Beep;
     Key:=#0;
  end;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
  if length(Edit1.Text) > 0 then
  begin
   If Edit1.Text[1]='0' then
   begin
   ShowMessage('El primer valor no puede ser cero.');
     if Length(Edit1.text) > 1 Then
     Edit1.Text:=Copy(Edit1.Text,2,Length(Edit1.Text))
     else
     Edit1.Text:='';
   end;
  end;
end;
Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #9  
Antiguo 07-12-2010
gonza_619 gonza_619 is offline
Miembro
 
Registrado: feb 2010
Posts: 157
Poder: 15
gonza_619 Va por buen camino
gracias amigos, con la primera respuesta funciono de 10, ahora tengo otro prob, q en un dbedit muestro un horario de campo time, y cuando quiero moficiarlo desde el dbedit, puedo poner cualquier caracter lo cual no tendria q ser asi, es decir el dbedit me muestra = 11:00:00 p.m. , se puee mostrar el horario desde un datetimepicker o ahi alguna solucion para modificacion de horario? o como validar ese dbedit ? gracias a todos
Responder Con Cita
  #10  
Antiguo 07-12-2010
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Para esta nueva pregunta debes abrir otro hilo.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cursor en ultimo caracter de TEdit Viky Varios 2 22-12-2009 15:27:17
Validar un TEdit Nicoasd Varios 5 06-07-2007 13:38:24
Extraer varios registros con su primer caracter..... Luis Alberto SQL 11 17-11-2005 17:37:06
Extraer el primer caracter de un string willy Varios 34 29-04-2004 23:56:57
Posición del primer caracter de linea en un RichEdit SCH Varios 0 22-09-2003 20:51:32


La franja horaria es GMT +2. Ahora son las 04:41:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi