Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Codigo ascii (https://www.clubdelphi.com/foros/showthread.php?t=20798)

Luli 26-04-2005 03:32:59

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

roman 26-04-2005 06:29:55

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

rafita 26-04-2005 10:11:13

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


La franja horaria es GMT +2. Ahora son las 00:39:32.

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