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 18-08-2010
Avatar de javave
javave javave is offline
Registrado
 
Registrado: ago 2010
Posts: 3
Poder: 0
javave Va por buen camino
Ayuda Por Favor! Condición If

Hola amigos qué tal?

Epa soy novato en Delphi, apenas empecé a usarlo ayer.

Estoy creando un programita para familiarizarme con Delphi. Sin embargo, tengo una duda que me está matando:

Estoy creando una condición y necesito saber cómo hago para extraer los datos de un EDIT para poder aplicar la condición.

Hasta ahora tengo este código:

var
prueba: Double;

begin
prueba := StrToFloat(Valor.Text);
prueba := Format([prueba]);
if isNAN(prueba) then
ShowMessage ('Lo que introdujo no es un número')
end.

Donde <<Valor>> es es nombre del EDIT donde el usuario introduce los números.

El objetivo es que el programa avise cuando el usuario introduce letras en ese EDIT. El programita que estoy desarrollando es un conversor.

Gracias espero su respuesta.
Responder Con Cita
  #2  
Antiguo 18-08-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 javave.

Podés asignar esto al evento OnExit del TEdit:
Código Delphi [-]
procedure TForm1.ValorExit(Sender: TObject);
var
  Value: Integer;
begin
  if not TryStrToInt(Valor.Text, Value) then
  begin
    ShowMessage('No ingresó un número');
    Valor.SetFocus;
  end;
end;

O directamente evitar que lo ingrese, asignando esto al evento OnKeyPress del TEdit:
Código Delphi [-]
procedure TForm1.ValorKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8,#13,'0'..'9']) then // teclas permitidas BacSpace,Intro,'0'..'9'
  begin
    Beep;
    Key:= #0;
  end;
end;

Hay otras opciones, pero creo que estas son simples y te funcionaran bién.

Saludos.
Responder Con Cita
  #3  
Antiguo 18-08-2010
Avatar de Chris
[Chris] Chris is offline
Miembro Premium
 
Registrado: abr 2007
Ubicación: Jinotepe, Nicaragua
Posts: 1.678
Poder: 19
Chris Va por buen camino
Normalmente siempre es más oportuno utilizar la función TryStrToFloat en lugar de StrToFloat. TryStrToFloat devuelve TRUE si la cadena dada en el primer parámetro solo tenía números, de lo contrario, devolverá FALSE.
Código Delphi [-]
var
    prueba: Double;
begin
    if not TryStrToFloat(Valor.Text, Prueba) then
    begin
        ShowMessage ('Lo que introdujo no es un número');
        Exit;
    end;
end;
__________________
Perfil Github - @chrramirez - Delphi Blog - Blog Web
Responder Con Cita
  #4  
Antiguo 18-08-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 Chris Ver Mensaje
Normalmente siempre es más oportuno utilizar la función TryStrToFloat en lugar de StrToFloat. TryStrToFloat devuelve TRUE si la cadena dada en el primer parámetro solo tenía números, de lo contrario, devolverá FALSE.

Correcto, con TryStrToFloat ampliamos la opción a números reales.
Te comento javave que TryStrToInt funciona del mismo modo pero con enteros.

En ese caso la verificación OnKeyPress queda:
Código Delphi [-]
procedure TForm1.ValorKeyPress(Sender: TObject; var Key: Char);
begin
  if not (Key in [#8, #13, ',' , '0'..'9']) then // teclas permitidas BacSpace,Intro,'0'..'9', ',' o '.'
  begin
    Beep;
    Key:= #0;
  end;
end;

De acuerdo al delimitador especificado poné '.' o ','

Para especificarlo podés usar la variable DecimalSeparator.
Para el código de arriba:
Código Delphi [-]
  DecimalSeparator := ',';


Saludos.

Última edición por ecfisa fecha: 18-08-2010 a las 20:31:18.
Responder Con Cita
  #5  
Antiguo 18-08-2010
Avatar de javave
javave javave is offline
Registrado
 
Registrado: ago 2010
Posts: 3
Poder: 0
javave Va por buen camino
Solved!

Gracias a todos por su apoyo!

Ya pude resolver el problema!
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
Ayuda por favor Nigth Varios 1 11-11-2008 14:20:48
Ayuda por favor jcarteagaf Varios 5 27-06-2006 12:27:13
ayuda por favor ^^ ... CrystalBlood SQL 1 19-01-2006 20:15:17
ayuda por favor haffo Varios 2 14-10-2003 16:08:45
Ayuda por favor jtellof Conexión con bases de datos 4 08-09-2003 21:56:24


La franja horaria es GMT +2. Ahora son las 12:22:20.


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