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 26-04-2005
Luli Luli is offline
Miembro
 
Registrado: oct 2004
Posts: 76
Poder: 20
Luli Va por buen camino
Lightbulb Codigo ascii

Hola, un saludo a todos. Bueno, tengo una pregunta que hacerles, en el programa en el que estoy trabajando necesito guardar el nombre de una variable que el usuario introducirá por teclado, eso ya lo hago pero ese nombre debe restringirse, es decir lo que ya sabemos, no debe empezar con espacios en blanco, ni con numeros. Alguna vez hice un ejercicio de esos en turbo c y limitabamos la primer letra usando el codigo ascii, por ejemplo, que la primer letra de la palabra debia estar dentro de un intervalo de números que son el codigo ascii de las letras... Espero explicarme bien, me gustaria saber si puedo hacer lo mismo en delphi, de antemano muchas gracias
Responder Con Cita
  #2  
Antiguo 26-04-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Pues no especificas con exactitud qué tipo de formato deben seguir tus identificadores pero si de algo te sirve Delphi cuenta con la función IsValidIdent que te dice si un cadena de caracteres es un identificador válido- al menos tal como Delphi define un identificador válido.

// Saludos
Responder Con Cita
  #3  
Antiguo 26-04-2005
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
Hola Luli,

quizá fuese suficiente con controlar el evento OnKeyPress del Edit o MaskEdit, limitando los caracteres que permites:

Código:
procedure SoloNumeros(Sender: TObject; var Key: Char);
begin
  if not (key in ['0'..'9',#8]) then key:=#0;  // sólo admito número y la tecla de retroceso
end;
// if not (key in ['a'..'f','1'..'5',#8]) --> solo letras de la "a" a la "f" y números del "1" al "5".

Si deseas más restricciones, como obligar a que el primer caracter sea una letra, puedes utilizar las mascaras del MaskEdit, validarlo al salir del control, o cambiar los caracteres que admites según los que ya tengas:

Código:
procedure Form1.Edit1OnkeyPress(Sender: TObject; var Key: Char);
begin
   if Length(Edit1.Text)<2 then
	  if not (key in ['a'..'e','j'..'m',#8]) then key:=#0	  
   else
	  if not (key in ['0'..'9',#8]) then key:=#0;
end;
// los dos primeros caracteres deben ser una de estas letras: a, b, c, d, e, j, k, l, m
// el resto serán sólo numeros
Saludos
__________________
Rafita.
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


La franja horaria es GMT +2. Ahora son las 19:01:49.


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