PDA

Ver la Versión Completa : Encontrar errores en código


Fer HA
21-05-2008, 22:47:19
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
...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
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
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:
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
:)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 (http://www.clubdelphi.com/foros/guiaestilo.php) y usa las etiquetas de delphi para el codigo

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.