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 15-10-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
Ayuda con un error.No hay manera

Tengo una aplicación echa en delphi, que es de operaciones a una base de datos SQL, y cuando cierro la aplicación, me da el siguiente error.

Exception EBitsError in module Aplicacion.exe at 0001FB47
Bits index out of range.

el numero 0001FB47,puede variar, a veces es el 0001FB27 o algun otro.

Pero solo me lo da cuando cierro la aplicación.
Si alguien puede ayudarme por favor, se lo agradeceria mucho.No hay manera de saber porque me da este error.

Un saludo
Muchas gracias de antemano.
Responder Con Cita
  #2  
Antiguo 15-10-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Hola :

Tienes alguna operacion en los eventos de cierre de la aplicacion??? como OnFormClose o algun otro ???
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #3  
Antiguo 15-10-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
Si tengo un insert en la base, pero este insert, no es, porque lo comento y me sigue dando error.

Y en el Data Module no tengo nada en el ondestroy.

Es como si algo se quedara tocado cuando estoy trabajando con la aplicación y al cerrar, me da el error.

Pero el programa me compila perfectamente, y mientras estoy trabajando con el no me da ni un error, y hace todo lo que tiene que hacer.

Es al cerrar la aplicación me salta este error.
Responder Con Cita
  #4  
Antiguo 15-10-2003
Viet Viet is offline
Miembro
 
Registrado: jul 2003
Ubicación: Argentina - Mar del Plata
Posts: 252
Poder: 21
Viet Va por buen camino
Yo creo que la unica manera de que quede trabajo pendiente al cerrar la aplicacion seria que tengas Threads, pero como no lo comentas lo dudo.

Ahora bien... obviamente el error esta en alguna instruccion que se desencadena al cerrar la aplicacion.... Estos eventos pueden ser onClose de un Form, de un datamodule, o bien al cerrar una conexion, o un dataset ... y otras cosas ...... yo en tu caso apuntaria por esos lados ... sino ves nada ... comenta que es lo que hace tu aplicacion y vemos que onda

Suerte
__________________
Marín Ignacio Borthiry (Viet) - "El hombre arriesga su vida cada vez que elije y eso es lo que lo hace libre" ;)
Responder Con Cita
  #5  
Antiguo 15-10-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Ese error suele darse cuando tienes un Objeto de la clase TBits, y asignas un Bit[n], donde n esta fuera del rango establecido por la propiedad Size.
Revisa tu código donde uses objetos de esta clase, o ejecuta tu proyecto con la opción Tools\Debugger Options\Language Exceptions\Stop on Delphi Exceptions como True.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #6  
Antiguo 15-10-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
Hola de nuevo.

No utilizo TBits en ningún momento.

He utilizado el Stop on delphi exceptions, y se me para al cerrar la aplicación, me da el mismo error, y a continuación se me cierra el programa.Con lo qual me pasa lo mismo que sin Stop on delphi exceptions.

Me he dado cuenta, que me pasa cuando he entrado a un determinado form de la aplicación.

Pero ese formulario lo creo y lo destruyo como todos los demás, y no tengo ningún problema, con los demás.

Lo curioso es que no me da el error con ese form, sino que me lo da cuando cierro la aplicación habiendo entrado a ese form.

No se, parce que en algún sitio intgerno de delphi, algo es incompatible a algo que hago dentro de ese form.
Responder Con Cita
  #7  
Antiguo 15-10-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Posteado originalmente por Descendents
He utilizado el Stop on delphi exceptions, y se me para al cerrar la aplicación, me da el mismo error, y a continuación se me cierra el programa.Con lo qual me pasa lo mismo que sin Stop on delphi exceptions.
El "Stop on delphi exceptions", no solucionará tu problema, te servirá para saber donde se produce este error. El error seguramente esta relacionado con un TBits, el tema es saber que utiliza esta clase, por ejemplo algún componente de terceros que estés utilizando, que al liberarse puede producir este problema.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 15-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Posteado originalmente por Descendents
No utilizo TBits en ningún momento.
Esto llama la atención. Quizá estés usando alguna componente de terceros que hace un mal manejo de alguna variable de tipo TBits.

Algo que puedes intentar es marcar la opción

Project/Options/Compiler/Use Debug DCUs

abrir la unidad classes.pas del código fuente de Delphi, buscar el procedimiento TBits.Error, colocar un "breakpoint" en

raise EBitsError.CreateRes(@SBitsIndexError);

y correr tu aplicación.

Cuando cierres ésta y la ejecución se detenga en el "breakpoint" revisa la ventana "Call stack"`para intentar ver qué rutina generó la excepción.

// Saludos
Responder Con Cita
  #9  
Antiguo 15-10-2003
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Otra cosa (independiente de lo anterior):

En el momento en que salga la excepción y antes de cerrar el cuadro de mensaje, cámbiate al IDE de Delphi y abre

Search|FindError

y anota ahí la dirección que te marca el mensaje de la excepción (0001FB27 o similar)

Esto debe llevarte al punto del código que genera la excepción. Si te abre una ventana de CPU en lugar de código muy posiblemente sea lo que comentaba: alguna componente de terceros mal hecha o mal usada.

// Saludos
Responder Con Cita
  #10  
Antiguo 16-10-2003
Descendents Descendents is offline
Miembro
 
Registrado: may 2003
Ubicación: Barcelona
Posts: 396
Poder: 21
Descendents Va por buen camino
Buenas Gente
Muchas gracias por contestar.
Bueno he encontrado de donde viene el error.

Es muy curioso porque como ya dije,me da error solo si he entrado a un determinado formulario(le llamare Formulario X), y cuando cierro el formulario 1 (al salir de la aplicación) , pasa por el siguiente procedimiento

procedure TGlyphList.Delete(Index: Integer);
begin
if Used[Index] then
begin
Dec(FCount);
Used[Index] := False;
end;
end;

del pas Buttons.

Used = Tbits.

Tengo tres botones en el form1 que tiene glyph, son BitBtn.
Si les saco los graficos o sea los Glyph ya no me da error la aplicación.

me da error en la linea if Used[Index] then

Esto es algo interno de delphi, porque yo no he tocado nunca este pas.

Lo curioso es que tengo alguna aplicaciones, con glyph en el primer formulario y no me pasa esto.

Creo,que el formulario X debo hacer algo mal, o algo esta mal, y al salir de la aplicación y cargarse los bitbtn del form1, la lista interior de Glyphs del programa, cuando la va destruyendo, pues llega un momento que peta.

No se , de momento sacando los glyph de los bitbtn, ni un problema me da.Esta es la solución momentanea, pero claro esto no es una buena solución.

Muchas gracias a todos
Otro Saludo
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


La franja horaria es GMT +2. Ahora son las 03:03:20.


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