Ir al contenido


Foto

Problema soy nuevo en programacion Delphi 7


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

#1 pavon19

pavon19

    Newbie

  • Miembros
  • Pip
  • 1 mensajes

Escrito 27 abril 2012 - 10:29

hola primero que nada un saludo desde venezuela.. :)

bueno primero que nada estoy empezando a programar en delphi 7 Professional porque no consigo el enterprise que usa el intituto universitario donde curso mi estudios.. el profesor explico pocas cosas simple sobre delphi 7 enterprise bueno acabo de llegar a mi casa y empece a crear una aplicacion sencilla usando un programa hecho es turbo pascal 7.0 lo quise hacer en forma mas dinamica.. con dephi 7 Professional

el profesor nos enseño como mostrar resultados de una suma en un label, y todo eso cuando yo hice por mi parte me salio un error al convertir un integer a string. segun lo que me señalo delphi 7

aqui coloco el error



delphi
  1. There is no overloaded version of 'IntToStr' that can be called with these arguments



y aqui donde me muestra el error



delphi
  1. procedure TForm1.BtncalcularClick(Sender: TObject);
  2. var
  3. NotaP,notaPar,Resultado:real;
  4. begin
  5. NotaP:= strtoint(Edtnotap.Text);
  6. NotaPar:= strtoint(Edtnotaparcial.Text);
  7.  
  8. if Notap >= 10 then
  9. begin
  10. Resultado:= notap + notap*0.05;
  11. end;
  12.  
  13. if(notap > 0) and (notap < 10) then
  14. begin
  15.  
  16. Resultado:= notap + notap*0.05;
  17. end;
  18.  
  19. Lblresultado.Caption:= inttostr(Resultado); [color=red]aqui donde me sale error[/color]
  20.  
  21. end;



soy nuevo.. espero que me ayuden y me aclaren esta duda.. uso dephi 7 professional

Gracias de ante mano..
  • 0

#2 fredycc

fredycc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 874 mensajes
  • LocationOaxaca, México

Escrito 27 abril 2012 - 10:51

Hola, bienvenido a DelphiAccess.

Con respecto a tu pregunta, debido a que utilizas decimales en tu multiplicación (punto flotante), deberías intentar con la función: FloatToStr para convertir el dato correctamente.

Info http://www.delphibas...Name=FloatToStr

Saludos
  • 0

#3 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 27 abril 2012 - 12:05

Y por cierto, es preferible declarar las variables como float, es mejor que real, no recuerdo la razón pero creo que algo con la precisión supongo.

Puedes usar FloatToStr o bien Format si quieres fijar el numero de decimales, o si realmente quieres mostrarlo como entreo, usarias IntToStr(Round(valor))
  • 0

#4 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 27 abril 2012 - 10:28

Y por cierto, es preferible declarar las variables como float, es mejor que real, no recuerdo la razón pero creo que algo con la precisión supongo.

En C (y creo que es igual para sus derivados) existe la distinción entre Float y Double por la precisión. Siendo Float de 7 decimales y Double de 15. Sus equivalentes en Delphi son Single y Double.
En Delphi no existe el tipo float, pero si real; y si no me equivoco Real y Double son sinónimos, uno es un alias del otro.

Saludos,
  • 0

#5 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3.486 mensajes
  • LocationMexico City

Escrito 27 abril 2012 - 11:19

Nomás un pequeño agregado :grin:... la función a usar es StrToFloat de inicio para pasar la info de texto a flotante y como bien te han dicho FloatToStr para mostrarlo de nuevo en la etiqueta  :tongue:



delphi
  1. procedure TForm1.BtncalcularClick(Sender: TObject);
  2. var
  3.   NotaP,notaPar,Resultado:Float;  // Como ya te habían mencionado cambiar de Real a Float
  4. begin
  5. NotaP:= StrToFloat(Edtnotap.Text);          // Primera conversión de string a flotante
  6. NotaPar:= StrToFloat(Edtnotaparcial.Text);
  7.  
  8. if Notap >= 10 then
  9. begin
  10. Resultado:= notap + notap*0.05;
  11. end;
  12.  
  13. if(notap > 0) and (notap < 10) then
  14. begin
  15.  
  16. Resultado:= notap + notap*0.05;
  17. end;
  18.  
  19. Lblresultado.Caption:= FloatToStr(Resultado); //  Aquí la segunda conversión pero ahora de flotante a string
  20.  
  21. end;



Saludox y bienvenido a Delphi !!!!  :smiley:

  • 0

#6 Sergio

Sergio

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.092 mensajes
  • LocationMurcia, España

Escrito 28 abril 2012 - 08:19


Y por cierto, es preferible declarar las variables como float, es mejor que real, no recuerdo la razón pero creo que algo con la precisión supongo.

En C (y creo que es igual para sus derivados) existe la distinción entre Float y Double por la precisión. Siendo Float de 7 decimales y Double de 15. Sus equivalentes en Delphi son Single y Double.
En Delphi no existe el tipo float, pero si real; y si no me equivoco Real y Double son sinónimos, uno es un alias del otro.

Saludos,


Cierto, me refería a double y no a float... la memoria que me falla!
  • 0




IP.Board spam blocked by CleanTalk.