Ir al contenido


StrToInt y un Text Edit.


  • Por favor identifícate para responder
13 respuestas en este tema

#1 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 26 diciembre 2008 - 11:14

Aver amigos tengo una preguntita.

        Tengo este procedimiento:


delphi
  1. procedure TForm1.BitBtn1Click(Sender: TObject);
  2. var
  3.   Valor: integer;
  4.   Str: string;
  5. begin
  6. Valor := StrToInt(Edit1.Text) ;
  7.   if Valor in [0..255] then
  8.     Str := Chr(Valor);
  9.     ComPort.WriteStr(Str);
  10. end;



La cosa es que si no entro en el edit un integer me dara un bug y quiero eliminar esa posibilidad.Deve ser algo asi como un Else Showmessage (bla bla) pero debo poner algo mas?

Un Saludo.

#2 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 26 diciembre 2008 - 11:23

Hola

No se si tu versionde Delphi tenga la funcion



delphi
  1. if TryStrToInt(edit1.Text,Valor) then begin
  2.    if Valor in [0..255] then begin
  3.      Str := Chr(Valor);
  4.      ComPort.WriteStr(Str);
  5.   end;
  6. end;



Salud OS
  • 0

#3 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 diciembre 2008 - 11:52

tambien esta la forma:



delphi
  1.   Valor := StrToIntDef(edit1.Text, -1); //Si no es un valor numerico le coloca -1
  2.   if Valor in [0..255] then
  3.   begin
  4.     Str := Chr(Valor);
  5.     ComPort.WriteStr(Str);
  6.   end
  7.   else
  8.       ShowMessage(El valor ingresado no esta en el rango permitido...);


  • 0

#4 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 26 diciembre 2008 - 12:10

Buenos asi quedo la cosa:


delphi
  1. procedure TForm1.BitBtn1Click(Sender: TObject);
  2. var
  3.   Valor: integer;
  4.   Str: string;
  5. begin
  6. Valor := StrToIntDef(Edit1.Text,-1) ;
  7.   if Valor in [0..255] then
  8.   begin
  9.     Str := Chr(Valor);
  10.     ComPort.WriteStr(Str);
  11. end
  12.     else
  13.     ShowMessage('El valor ingresado no esta en el rango permitido...');
  14. end;



tenia unas faltitas el codigo pero al final me resulto. :)

Gracias Eduarcol.

Un Saludo.

#5 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 diciembre 2008 - 12:19

es que el compilador no trabaja bien, ya mañana estare mas despierto  |-)
  • 0

#6 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 26 diciembre 2008 - 12:24

es que el compilador no trabaja bien, ya mañana estare mas despierto  |-)

jajajajajaja ok , estas disculpado. :p


Un Saludo.

#7 lKinGl

lKinGl

    Advanced Member

  • Moderador
  • PipPipPip
  • 118 mensajes
  • LocationVenezuela

Escrito 26 diciembre 2008 - 02:14

También sirve así:
en el Evento OnKeyPress del Edit



delphi
  1. if not(Key in ['0'..'9',#8]) then
  2.   begin
  3.     Key:=#0;
  4.   end;



Salu2
  • 0

#8 Guest_Jose Fco_*

Guest_Jose Fco_*
  • Visitante

Escrito 26 diciembre 2008 - 02:26

También sirve así:
en el Evento OnKeyPress del Edit



delphi
  1. if not(Key in ['0'..'9',#8]) then
  2.   begin
  3.     Key:=#0;
  4.   end;



Salu2


Gracias King, interesante el dato. (y)

Un Saludo.

#9 lKinGl

lKinGl

    Advanced Member

  • Moderador
  • PipPipPip
  • 118 mensajes
  • LocationVenezuela

Escrito 26 diciembre 2008 - 02:37

con ese codigo evitas que el usuario introduzca algo que no sean números :D

si quieres añadir algun caracter solo pones así:



delphi
  1. if not(Key in ['0'..'9'+'caracter',#8]) then



salu2
  • 0

#10 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 26 diciembre 2008 - 02:48

Hola

Yo un caracter lo pondría así .......



delphi
  1. if not(Key in ['0'..'9','c','a','r','a','c','t','e','r',#8]) then



:D :D :D :p

Salud OS
  • 0

#11 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 diciembre 2008 - 03:01

pero con ese codigo no se valida si esta entre 0 y 255, solo por hacerlo notar
  • 0

#12 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 26 diciembre 2008 - 03:02

pero con ese codigo no se valida si esta entre 0 y 255, solo por hacerlo notar


Y que, eso ya está solucionado :p ahora estamos "enriqueciendo" el tema :D :D :D

Salud OS
  • 0

#13 eduarcol

eduarcol

    Advanced Member

  • Administrador
  • 4.483 mensajes
  • LocationVenezuela

Escrito 26 diciembre 2008 - 03:20


pero con ese codigo no se valida si esta entre 0 y 255, solo por hacerlo notar


Y que, eso ya está solucionado :p ahora estamos "enriqueciendo" el tema :D :D :D

Salud OS


inyectale dolares y veras lo rapido que enriquece...

para los cursis: yo ya soy rico por los buenos amigos que tengo aqui...
  • 0

#14 lKinGl

lKinGl

    Advanced Member

  • Moderador
  • PipPipPip
  • 118 mensajes
  • LocationVenezuela

Escrito 26 diciembre 2008 - 04:27

con un if bastará para completar el código :p
  • 0




IP.Board spam blocked by CleanTalk.