Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Restringir entrada a combobox (https://www.clubdelphi.com/foros/showthread.php?t=28742)

pepecharlie67 30-12-2005 15:38:58

Restringir entrada a combobox
 
Hola,me gustaria restringir una entrada al combobox,es decir,que el usuario solo pueda introducir integer, y en el caso de introducir un caracter salte una excepcion diciendo que debe introducir un numero.Quisiera saber si existe un filtro en el combobox y como utilizarlo.Gracias

Bicho 30-12-2005 15:49:06

Podrías probar en el evento OnChange del Combobox algo así:

Código Delphi [-]
procedure TForm1.ComboBox1Change(Sender: TObject);
var a : Integer;
begin
  try
    a := StrToInt(ComboBox1.Text);
  except
    ShowMessage('Solo caracteres númericos');
    Combobox1.Text := "";
  end
end;

Si lo quieres hacer más bonito el OnKeyPress puedes validar que el caracter introducido sea un número con
Código Delphi [-]
if key in ['0'..'9']
en caso contrario muestrale un error

Espero que te sirva

Saludos

dec 30-12-2005 15:57:55

Hola,

Una función curiosa que se ha referido aquí a veces es "TryStrToInt", la cual tratará de convertir un "string" en un "integer", devolviendo "true" si puede hacerlo y "false" en caso contrario.

Tal vez quepa añadir que tanto "TryStrToInt" como "StrToInt" no funcionarán si el número/cadena que trata de convertirse supera al propio tipo "integer". Tal vez esto sea de perogrullo... qué sé yo. ;)

Albano 30-12-2005 18:38:54

on key press
 
Yo creo que la mejor opcion de las mencionadas anteriormente para lo que quieres es la de on key press, porque al momento de presionar la tecla te verifica que sea numerica y es ahi donde te mostraria el mensaje de error...
Código Delphi [-]
if not(key in['0'..'9', #8]) then
ahi muestras tu mensaje de error y le das abort, para que no se escriba la tecla... lo de #8 lo pones si quieres que puedan borrar con el backspace.

Lepe 31-12-2005 11:38:46

Cita:

Empezado por Albano
Yo creo que la mejor opcion de las mencionadas anteriormente para lo que quieres es la de on key press

...Solo que no se valida si usa copiar y pegar dentro del combo.

saludos

pepecharlie67 31-12-2005 13:35:45

Muchas gracias.Al final utilice la opcion de OnKeyPress, y con respecto a ...Solo que no se valida si usa copiar y pegar dentro del combo. en mi caso, me lo hace bien.De todas maneras muchas gracias a todos.FELIZ AÑO!

Delfino 31-12-2005 16:48:20

Cita:

"TryStrToInt" como "StrToInt" no funcionarán si el número/cadena que trata de convertirse supera al propio tipo "integer"
Para eso estan las funciones del mismo nombre con sufijo 64; TryStrToInt64 y StrToInt64..


La franja horaria es GMT +2. Ahora son las 11:22:53.

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