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 02-07-2007
senda senda is offline
Miembro
 
Registrado: sep 2006
Posts: 48
Poder: 0
senda Va por buen camino
¡¿Breakpoint cuelga aplicación?!

Hola, me sucede una cosa muy extraña y completamente opaca para mí. No tengo ni idea x qué, pero cuando se pincha un botón y comienza la ejecución de su rutina al poner un breakpoint en dicha rutina se rompe la ejecución. Sin dicho breakpoint todo funciona, aparentemente (no puedo pararlo para comprobarlo detalladamente), bien.

Dicha rutina realiza los siguientes pasos:
1. Comprueba que una lista (objeto) no sea vacía.
2. Crea un nuevo formulario (create).
3. Rellena un atrib de otro objeto.
4. Hace el ShowModal (del anterior formulario).
5. Y por último el Free (de dicho formulario).

El breakpoint lo coloco en el paso3 y el resultado es que la aplicación se queda "colgada", no muestra el siguiente formulario. ¿Alguna idea de dónde he podío meter la pata? Muchas gracias.
Responder Con Cita
  #2  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Saludos

Probablemente sería mas útil que pegues el código en lugar de la serie de pasos. Porque hay varias formas de hacer lo mismo.
Responder Con Cita
  #3  
Antiguo 02-07-2007
senda senda is offline
Miembro
 
Registrado: sep 2006
Posts: 48
Poder: 0
senda Va por buen camino
Cita:
Empezado por gabrielkc
Probablemente sería mas útil que pegues el código en lugar de la serie de pasos. Porque hay varias formas de hacer lo mismo.
Código:
      Form1:=TForm1.Create(Form1);
      Form1.SetAtrib (atrib);
      Form1.ShowModal;
      Form1.Free;
      Form1:=nil;
Cuando la aplicación deja de responder, la "mato" con ctrl+alt+sup y al volver delphi se queda como si hubiese parado la ejecución en el punto de ruptura. Cuando intento volver a iniar la misma, me dice INTERNAL ERROR THR-405.
Responder Con Cita
  #4  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Saludos

Bueno para empezar no es sano que mates la aplicacion con ctrl+alt+supr, recuerda que delphi es el que crea la aplicacion y tiene que darle seguimiento.

Si necesitas "matar" la aplicacion en delphi preciona ctrl+F2 o bien menu run--->Program Reset.

deja checo tu codigo haber que encuentro raro
Responder Con Cita
  #5  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
saludos

creo que me quedé igual o peor..... que delphi tienes?

y la función setatrib no existe al menos no así como la escribes aqui.(attrib lleva doble t).

Mientras no pongas información completa es muy dificil ayudarte. No tengas miedo por el espacio no se termina (ver guia de estilo http://www.clubdelphi.com/foros/guia....php#cervantes).

Espero que puedas darnos un poco mas de información. Hasta luego
Responder Con Cita
  #6  
Antiguo 02-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Disculpa mi curiosidad y solo por preguntar, despues que se interrumpe la aplicacion pruebas iniciarla de nuevo (F8,F9)?????
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #7  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
F8 F9??

jajajajajajaa, excelente pregunta, no se me hubiera ocurrido , hay que partir de lo básico.

Si no nos contesta quiere decir que si
Responder Con Cita
  #8  
Antiguo 02-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
Pues si a veces las respuestas son mas sencillas de lo que parece y uno tratando de resolverla con ecuaciones trigonometricas y demas, para ejemplo un boton jajajaja http://www.clubdelphi.com/foros/showthread.php?t=40679
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #9  
Antiguo 02-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por eduarcol
Pues si a veces las respuestas son mas sencillas de lo que parece y uno tratando de resolverla con ecuaciones trigonometricas y demas, para ejemplo un boton jajajaja http://www.clubdelphi.com/foros/showthread.php?t=40679
Oops, eso duele, gracias eduarcol por no dejar que se me olvide.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 02-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
jajjaja tranquilo que para eso estamos :P

pero no niegues que la cosa estuvo comiquisima
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #11  
Antiguo 02-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Cita:
Empezado por eduarcol
jajjaja tranquilo que para eso estamos :P

pero no niegues que la cosa estuvo comiquisima
A decir verdad, aún me rio de mi mismo,

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #12  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
jajjaa

Cuando vi el hilo me fijé inmediatamente si no estabamos en el foro de humor
Responder Con Cita
  #13  
Antiguo 02-07-2007
Avatar de eduarcol
[eduarcol] eduarcol is offline
Miembro Premium
 
Registrado: ago 2003
Ubicación: En los estados Zulia y Merida de Venezuela
Posts: 4.151
Poder: 25
eduarcol Va por buen camino
sera que senda se molesto por la broma?
__________________
...Yo naci en esta ribera del arauca vibr@d0r
Soy hermano de la espuma,
de la garza, de la rosa y del sol...
Viva Venezuela
Responder Con Cita
  #14  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Broma

Es muy válida tu pregunta.......

Yo creo que presionó F9
Responder Con Cita
  #15  
Antiguo 02-07-2007
senda senda is offline
Miembro
 
Registrado: sep 2006
Posts: 48
Poder: 0
senda Va por buen camino
Cita:
Empezado por gabrielkc
Bueno para empezar no es sano que mates la aplicacion con ctrl+alt+supr, recuerda que delphi es el que crea la aplicacion y tiene que darle seguimiento.

Si necesitas "matar" la aplicacion en delphi preciona ctrl+F2 o bien menu run--->Program Reset.
ctrl+F2 pasa de mí (no hace nada) y como la aplicación es a pantalla completa no puedo acceder al mené de delphi (tampoco me deja con alt+tab). Ni siquiera me permite minimizar ni cerrar la ventana de la aplicación.

Cita:
Empezado por gabrielkc
creo que me quedé igual o peor..... que delphi tienes?
Sé que son muy pocos datos, lo siento. Utilizo Delphi7.

Cita:
Empezado por eduarcol
Disculpa mi curiosidad y solo por preguntar, despues que se interrumpe la aplicacion pruebas iniciarla de nuevo (F8,F9)?????
Cita:
Empezado por senda
Cuando intento volver a iniciar la misma, me dice INTERNAL ERROR THR-405.
con F8 y/o F9...

Cita:
Empezado por gabrielkc
Si no nos contesta quiere decir que si
He tenido que "ausentarme" del foro, y ójala hubiese sido semejante despiste.

Cita:
Empezado por eduarcol
sera que senda se molesto por la broma?
Nop.

Cita:
Empezado por gabrielkc
Yo creo que presionó F9
Tampoco.
Responder Con Cita
  #16  
Antiguo 02-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Volviendo al inicio del hilo.

Form1.SetAtrib.... no existe.

form1 estoy suponiendo que es una instancia de una clase TForm..... ,lo que me parece extraño es que no te marque error. SetAttrib ( con doble T) lo he usado para cambiar atributos de archivos y alguna vez en OLE.


Que hace la funcion o procedimiento SetAttrib y attrib que valor recibe??
Responder Con Cita
  #17  
Antiguo 03-07-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Esto me dá que pensar... y mucho:
Código Delphi [-]
Form1:=TForm1.Create(Form1);
Si Form1 no está creado, es equivalente a poner:
Código Delphi [-]
Form1:=TForm1.Create(nil);
Así que tú, en algún momento tendrás que liberar a Form1 haciendo un .Free.

Si picas por segunda vez en el botón, la cosa se complica más:
- Si no has usado FreeAndNil(Form1), es muy probable que Form1 tenga el valor de la antigua ejecución, por lo que jamás se destruirá de memoria (se quedará en el limbo, como se suele decir).
- Si has usado FreeAndNil (o Form1.Free; Form1 := nil), entonces estamos en el primer caso que he comentado arriba.

El hecho de que el programa se interrumpa al situar un BreakPoint, supongo que viene porque el depurador intenta analizar el valor de todas las variables y al tener valores inconsistentes o referencias circulares, se vuelve un poco loco.

El problema viene por la creación y destrucción del "Form1" en tu código, sería bueno que dijeras si liberas Form1, cuando, donde y como.

Si dices como debe funcionar el programa (para qué sirve lo que estas haciendo) y demás... muchísimo mejor.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #18  
Antiguo 03-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Cierto, no me habia fijado.

Generalmente no es necesario que las formas tengan un dueño, probablemente cambiando tu sentencia a

Form1:=TForm1.Create(nil);

puedas evitarte, si no en este caso si posteriormente, muchos problemas dificiles de encontrar
Responder Con Cita
  #19  
Antiguo 03-07-2007
senda senda is offline
Miembro
 
Registrado: sep 2006
Posts: 48
Poder: 0
senda Va por buen camino
Cita:
Empezado por gabrielkc
Form1.SetAtrib.... no existe.
Lo siento, se me olvidó responder a este tema. SetAtrib es un método creado por mí el cual asigna ':=' (aunque dudo que esté bien metodológicamente hablando, tal vez sea una burrada) una lista a un atributo del mismo tipo dentro del formulario.

Cita:
Empezado por gabrielkc
form1 estoy suponiendo que es una instancia de una clase TForm.....
Código:
TForm1 = class(TForm)
Cita:
Empezado por Lepe
Así que tú, en algún momento tendrás que liberar a Form1 haciendo un .Free.

Si picas por segunda vez en el botón, la cosa se complica más:
- Si no has usado FreeAndNil(Form1), es muy probable que Form1 tenga el valor de la antigua ejecución, por lo que jamás se destruirá de memoria (se quedará en el limbo, como se suele decir).
- Si has usado FreeAndNil (o Form1.Free; Form1 := nil), entonces estamos en el primer caso que he comentado arriba.

El hecho de que el programa se interrumpa al situar un BreakPoint, supongo que viene porque el depurador intenta analizar el valor de todas las variables y al tener valores inconsistentes o referencias circulares, se vuelve un poco loco.

El problema viene por la creación y destrucción del "Form1" en tu código, sería bueno que dijeras si liberas Form1, cuando, donde y como.

Si dices como debe funcionar el programa (para qué sirve lo que estas haciendo) y demás... muchísimo mejor.
Realizo ambas instrucciones:
Código:
From1.Free;
Form1:=nil;
tras el Form1.ShowModal, es decir, está pensado para que se ejecute el Form1 y cuando se destruya (el usuario pulsa 'x' o un botón de retorno) se ejecutaría la liberación del mismo (las 2 instrucciones previamente especificadas). No sé si importará mucho, pero el breakpoint lo sitúo en el Form1.Create por lo que no llega a destruir el formulario (ni siquiera llega a crearlo, en teoría).

Cita:
Empezado por Lepe
Si dices como debe funcionar el programa (para qué sirve lo que estas haciendo) y demás... muchísimo mejor.
El programa, en teoría, debe:
1. lanzar este formulario (Form1) para la recogida de datos del usuario
2. ejecutar un algoritmo genético con dichos datos
3. almacenar los resultados en la base de datos
4. volver al formulario de partida (desde donde se crea Form1).

Los pasos 2 y 3 aún están sin implementar, por lo que únicamente debe (Form1) comprobar la corrección de los datos y retornar al formualrio de partida.

Cita:
Empezado por gabrielkc
Generalmente no es necesario que las formas tengan un dueño, probablemente cambiando tu sentencia a

Form1:=TForm1.Create(nil);

puedas evitarte, si no en este caso si posteriormente, muchos problemas dificiles de encontrar
Ya lo he probado y, desgraciadamente, no aprecio ningún cambio en la ejecución. De todas maneras, gracias no me viene mal saber los buenos hábitos de programación en Delphi.
Responder Con Cita
  #20  
Antiguo 03-07-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por gabrielkc
Generalmente no es necesario que las formas tengan un dueño,
Depende del estilo de programación. Un Form no es más que otro control y en muchas ocasiones el dueño suele ser el objeto Application.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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
BreakPoint en Delphi 8 elpinjum Varios 2 14-03-2009 04:24:53
Aplicacion se 'cuelga' al llamar a OPEN (tquery) halcon_rojo Conexión con bases de datos 3 15-11-2006 15:18:58
Despues de unos minutos sin uso mi aplicacion se cuelga javicho_villa Varios 10 11-04-2006 20:43:07
Problemas con Debug y Breakpoint Berto2003 Varios 4 12-08-2003 00:50:27


La franja horaria es GMT +2. Ahora son las 05:13:15.


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