Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Encontrar errores en código (https://www.clubdelphi.com/foros/showthread.php?t=56610)

Fer HA 21-05-2008 22:47:19

Encontrar errores en código
 
Hola.
No sabía en que sección escribir mi problema así que lo pongo aquí.
He empezado hace poco a programar en Delphi, vengo de VB, y no se como localizar un error que me sale en ocasiones. El error se que esta en la función StrToInt() pero no se en que linea se produce.

Por lo que he ido aprendiendo creo se podría solucionar con un try...except pero tengo que saber donde falla ya que trabajo con datos recibidos por puerto com y se reciben muchos datos, y utilizo esa funcion en muchos sitios.

En resumen como puedo usar el Debug para este fin.

Gracias.

ContraVeneno 21-05-2008 23:13:59

dependiendo de la versión de delphi, podrías utilizar la función "TryStrToInt".

Sobre como encontrar el error, pues hasta donde recuerdo, funciona igual que en VB, solo que en lugar de F7, es F8.

Neftali [Germán.Estévez] 22-05-2008 09:09:06

A partir de la versión 6 también puedes utilizar StrToInrDef.

Northern 22-05-2008 10:47:16

Cita:

Empezado por Fer HA (Mensaje 288428)
...no se como localizar un error que me sale en ocasiones. El error se que esta en la función StrToInt() pero no se en que linea se produce.

Utiliza los BreakPoint.

Clickea en el gutter -esa barra vertical que está a la izquierda de la ventana de código- sobre una línea que te de problemas y ahí se parará la ejecución del programa permitiendote analizar los valores.

Muévete con cuidado con el mouse porque según donde pongas el cursor tendrás diferente información.


Saludos

Fer HA 22-05-2008 20:16:40

Hola.
Gracias por vuestras respuestas.
He conseguido eliminar algunos errores pero me siguen saliendo otros relacionados con IntToStr() aunque me sale en modo Debug, si compilo no sale el error. Utilizo Delphi 7 y no existe IntToStrDef().

He probado a usar F8 pero tampoco indica en que linea falla. En VB es más facil porque el programa se detiene en la linea que genera el error.

Voy a ver si por lo menos se han solucionado todos los errores con el codigo compilado ;)

ContraVeneno 22-05-2008 21:33:59

Cita:

Empezado por Fer HA (Mensaje 288649)
En VB es más facil porque el programa se detiene en la linea que genera el error

a caray... ¿en delphi no? :confused:

Fenareth 22-05-2008 22:02:39

Cita:

Empezado por Fer HA (Mensaje 288649)

He probado a usar F8 pero tampoco indica en que linea falla. En VB es más facil porque el programa se detiene en la linea que genera el error.

No entendí.... no entiendo porqué dices que no indica la línea en donde falla si con F8 recorriendo línea por línea "salta" exactamente en la línea del error y después muestra un mensaje de error... :confused:

Fer HA 22-05-2008 22:09:12

Me refiero a que voy pulsando F8 y se inicia la aplicación pero cuando sale el error no me indica la linea donde se produce, eso es a lo que referia con lo de facil.
No dudo que Delphi es mucha más potente, por eso no me quedo más remedio que hacerlo en este lenguaje ya que con VB era imposible.

Fer HA 22-05-2008 22:13:12

fenareth algo debo hacer mal porque no logro que vaya linea por linea, solo en este código:
Código Delphi [-]
begin
  Application.Initialize;
  Application.Title := 'EDPlug';
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

cuando llega a Application.Run; y pulso F8 la aplicación funciona sin tener que presionar más F8 ???

quiza alguna opción no tengo habilitada.

egostar 22-05-2008 22:20:44

:)
Cita:

Empezado por Fer HA (Mensaje 288679)
fenareth algo debo hacer mal porque no logro que vaya linea por linea, solo en este código:
begin
Application.Initialize;
Application.Title := 'EDPlug';
Application.CreateForm(TfrmMain, frmMain);
Application.CreateForm(TForm2, Form2);
Application.Run;
end.

cuando llega a Application.Run; y pulso F8 la aplicación funciona sin tener que presionar más F8 ???

quiza alguna opción no tengo habilitada.

Hola, lo que pasa es que estas ejecutando el trace en el archivo DPR, usa mejor F7 o colocate en tu archivo PAS donde quieres hacer el trace, colocate en la linea que deseas y presiona F4, ahi se detendrá

Por cierto, bienvenido al club, te invito a leer nuestra guia de estilo y usa las etiquetas de delphi para el codigo

Código Delphi [-]
begin
  Application.Initialize;
  Application.Title := 'EDPlug';
  Application.CreateForm(TfrmMain, frmMain);
  Application.CreateForm(TForm2, Form2);
  Application.Run;
end.

Ves que diferente se ve......

Salud OS

ContraVeneno 22-05-2008 22:26:26

Eso solo es para empezar con el programa, no es en ese código donde deberías estar revisando.

Mas bien en tu formulario principal o no se como este tu sistema.

Al menos conmigo delphi se detiene en el formulario en la parte de código donde se genera el error.

Fer HA 22-05-2008 22:48:33

Ok! ya voy cogiendo la idea y efectivamente ya me funciona de linea en linea.

Muchas gracias.


La franja horaria es GMT +2. Ahora son las 08:55:50.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi