Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-03-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Validar Ingreso De Letras En Un Edit

Código Delphi [-]


unit valletra;
interface
uses Classes, DBTables, QControls, SysUtils,Windows, Messages, Variants,Graphics, Controls, Forms, Dialogs, StdCtrls;
Type
Tvalletra= class(TWidgetControl)
private
letr: String;
public
property letra: String read letr write letr;
procedure validarn(letra: String);
end;
implementation
procedure TValletra.validarn(letra:String);
var i: integer;
var b: String;
begin
letr:=Letra;
for i:=1 to length(letra) do
begin
if ((letra[i] in ['a'..'z'])and (letra[i] in ['A'..'Z'])) then
b:='Verdadero'
else
b:='Falso';
end;
showmessage(''+b+'');
end;
end.






Buen dia.

En el codigo que les adjunto estoy intentando de elaborar una clase que me valide si le ingreso letras el valor de b (tipo String) retorne verdadero, de lo contrario b sea falso, recorriendo cada letra por medio de un ciclo.

El problema que tengo es haciendo pruebas de que valor me retorna b, siempre me retorna Falso, ya sea si el ingreso letras o no, quisiera por favor si me pueden ayudar que error tengo, o que correcciones me sugieren con respecto a esa clase.

Mil Gracias

Sergio
Responder Con Cita
  #2  
Antiguo 20-03-2008
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Porque si ingreso 'a' por ejemplo, te dara verdadero and falso = falso.

Es decir, estas preguntando si 'a' se encuentra el el grupo de la 'a..z' y si además se encuentra en el grupo de 'A..Z', obviamente no puede estar en ambos por eso te da falso.

Solución: cambiar and por or.
Responder Con Cita
  #3  
Antiguo 20-03-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
Fijate algo asi, como para no deformar mucho lo que haz hecho tu

Código Delphi [-]
function ValidaEdit(cadena:string):string;
var i:integer;
begin
  for i:=1 to Length(cadena) do
    begin
    if ((cadena[i] in ['a'..'z'])or(cadena[i] in ['A'..'Z']))
      then Result:='Verdadero'
       else Result:='Falso';
    end;
end;

y un ejemplo de llamada

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(ValidaEdit(Edit1.Text));
end;

Ojo con las funciones lógicas, debes aplicarlas utilizando lógica simbólica y cálculo proposicional

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #4  
Antiguo 20-03-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Otra Duda

No me habia fijado en eso, mil gracias por su aclaracion, ya hice esas correcciones.

Tengo otra duda, por ejemplo si yo ingreso 8u o ?5f, se supone que me deberia que botar falso, ya que en ninguno de los casos me tiene que admitir que me ingrese otra caracter diferente de la a la Z, no se si toque que hacer otra correcion de esa clase, o si hay otra manera de plantearla la tendre en cuenta, soy nuevo en delphi.

Agradezco toda la ayuda que me pueda prestar con respecto a eso.

gRACIAS
Responder Con Cita
  #5  
Antiguo 20-03-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
No entiendo muy bien el punto. Lo que quieres hacer es un Edit que solo admita letras y no numeros?

Porque de ser asi, podrías usar esto en el evento OnKeyPress del Edit

Código Delphi [-]
   if ( StrScan('abcdefghijklmnopqrstuvwxyz',Key) <> nil ) or
      ( Key = Char(VK_BACK) ) 
  then begin
     //lo que quieras...

  end 
  else begin
     Key := #0;
  end;

No tengo Delphi a mano, pero quedaria algo asi

Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;

Última edición por MaMu fecha: 20-03-2008 a las 20:23:44.
Responder Con Cita
  #6  
Antiguo 20-03-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Respuesta

Lo que quiero hacer es que solo me admita ingresar letras en el edit, no combinaciones por ejemplo de letras con numeros ó letras con caracteres distintos solo letras .
Responder Con Cita
  #7  
Antiguo 20-03-2008
Avatar de MaMu
MaMu MaMu is offline
Miembro
 
Registrado: abr 2006
Ubicación: Argentina
Posts: 863
Poder: 18
MaMu Va por buen camino
Cita:
Empezado por sdiaz1983 Ver Mensaje
Lo que quiero hacer es que solo me admita ingresar letras en el edit, no combinaciones por ejemplo de letras con numeros ó letras con caracteres distintos solo letras .
SOLUCION


Saludos
__________________
Código Delphi [-]
 
try 
ProgramarMicro(80C52,'Intel',MnHex,True);
except
On Exception do
MicroChip.IsPresent(True);
end;
Responder Con Cita
  #8  
Antiguo 20-03-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Respuesta

Mil Gracias Uan Vez Mas, Intentar Este Codigo, Cualquier Cosa Le Aviso.

Gracias
Responder Con Cita
  #9  
Antiguo 20-03-2008
Avatar de BlueSteel
[BlueSteel] BlueSteel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Concepción - Chile
Posts: 2.310
Poder: 23
BlueSteel Va por buen camino
solo queria mencionar que la JVCL tiene un componente que realiza lo que tu necesitas.. tanto para numero como letras

Paleta Jv Edits

Componente TJvValidadeEdit y TJvEdit

Salu2
__________________
BlueSteel
Responder Con Cita
  #10  
Antiguo 21-03-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Jv

Una Pregunta, Este Componente Del Que Habla Ya Se Encuentra En Delphi O Toca Descargarlo, Si Se Encuentra Por Favor Digame En Donde Y Si Toca Descargarlo Por Favor Indiqueme Todo Para Poderlo Descargar.

Mil Gracias Una Vez Mas A Usted Y A Todos.

Dios Los Bendiga
Responder Con Cita
  #11  
Antiguo 21-03-2008
sdiaz1983 sdiaz1983 is offline
Miembro
 
Registrado: sep 2007
Posts: 52
Poder: 17
sdiaz1983 Va por buen camino
Codigo Final Clase

Compañeros del foro, quiero mostrarles el codigo de la clase que les comente, ya me funciona, de todos modos una vez mas mil gracias a todos y que Dios los proteja a ustedes por su paciencia, mil gracias.

Código Delphi [-]
unit valletra;
interface
uses Classes, DBTables, QControls, SysUtils,Windows, Messages, Variants,Graphics, Controls, Forms, Dialogs, StdCtrls;
  Type
  Tvalletra= class(TWidgetControl)
  private
   letr: String;
   bandera: Integer;
  public
  property letra: String read letr write letr;
  property band: Integer read bandera write bandera;
  procedure validarn(letra: String);
  end;
implementation
  procedure TValletra.validarn(letra:String);
  var b: String;
  var i: Integer;
  var c: Integer;
  begin
  letr:=Letra;
  bandera:=c;
  c:=0;
   for i:=1 to length(letra) do
     begin
     if not ((letra[i] in ['a'..'z'])or (letra[i] in ['A'..'Z'])) then
       begin
       c:=c+1;
       end;
     end;
      bandera:=c;
      if(c<>0) then
      MessageDlg('INGRESO INCORRECTO',mtError,[mbOk],0);
  end;
end.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Solo letras y numeros en edit oesteve OOP 30 28-06-2013 21:30:43
Validar numeros y letras en un Edit? danytorres Varios 12 12-11-2010 21:42:27
Validar ingreso al Sistema.... BlueSteel Varios 8 28-01-2005 00:58:27
como validar numeros y letras ealexmp Impresión 0 29-12-2004 23:11:17
edit sin letras mainau Varios 7 19-07-2004 13:11:05


La franja horaria es GMT +2. Ahora son las 05:05:36.


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