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 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
Exception extraña..

Project Project1.exe raised exception class EAccesViolation with message 'Access violation at adress 0000004. Read of addres 0000004'. Process stopped. Use Step or Run To continue.

Toda la tarde y no se por que cojones me da esa excepction, perdon por la palabara pero es que estoy que no puedo más ... no tengo ni idea de exceptions i de debbugear a ver si alguien me ayuda un poco...
Me explico:
El programa es una calculadora que procesa unos numeros creados aleatoriamente y te calcula varios resultados, tiene muchos arrays, Tlist view que se llenan hasta 100000 o más, memos que tmb llenan eso... pero...
A veces cuando lleva más de 1000 numeros procesados me da except en el onmouse over de unas label que tengo que no tienen nada en onmouse over y borra la caption...
Otras veces al pasar de 10000 o así me da esa except y una y otra vez, vamos que no hay manera de seguir con el programa...

Estoy loco, no se que puede ser .
Son calculos muy muy simples.
Gracias por la ayuda...
Responder Con Cita
  #2  
Antiguo 28-09-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
El error que estás obteniendo es de acceso a memoria. Una de las causas más comunes de este error es tratar de usar un objeto que no ha sido creado o que ya fue destruido...

Ahora, si puedes poner algo de tu código tal vez se te puede ayudar de mejor forma...



Saludos...
Responder Con Cita
  #3  
Antiguo 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
es que no se en que parte esta el error y hay mucho mucho codigo.. son 8 forms llenas de codigo con bucles y application procesmsg para poder interactuar entre ellas.. no sabria que pegar =(

Lo de objeto destruido no puede ser por que eneste proceso no se destruye nada y es totalmente aleatorio el momento que empieza el error ( oeso creo..) mas ideas? a ver si puedo pegar algo...
Responder Con Cita
  #4  
Antiguo 28-09-2006
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Coloca breakpoints (Tecla F5) donde sospeches que pueda estar el fallo y cuando la ejecución del programa llegue a uno de estos, ve haciendo un paso a paso (Tecla F7) hasta que te salga el error.

Entre las herramientas de depurado tienes la ventana Watch desde donde puedes agregar variables y ver que valores toman en determinado momento.

La verdad que aprender a depurar un programa es una de las tareas más importantes cuando se desarrolla una aplicación.


Saludos....
Responder Con Cita
  #5  
Antiguo 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
voy a ello, gracias de nuevo =) nunca tube tantos problemas y por tanto no requerí aprender a debbugear cuando tenga algo cuento!
Responder Con Cita
  #6  
Antiguo 28-09-2006
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
También recomiendo que actives la opción Project|Options|Compiler|Use debug DCUs y hagas un Build del proyecto. Esto para que el debugger incluya las unidades de la vcl. Aunque seguramente el error no se genera ahí, posiblemente sí sea ahí, en la vcl, donde se muestra y eso te puede dar una idea del tipo de operación realizada para saber dónde buscar.

// Saludos
Responder Con Cita
  #7  
Antiguo 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
No saco nada en claro realmente estoy perdido y desesperado.. incluso estoy planteandome volver a empezar la aplicación.. y no es una cosita pequeña .... Bueno... a ver si hay suerte =(
Responder Con Cita
  #8  
Antiguo 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
Cita:
Empezado por roman
También recomiendo que actives la opción Project|Options|Compiler|Use debug DCUs y hagas un Build del proyecto. Esto para que el debugger incluya las unidades de la vcl. Aunque seguramente el error no se genera ahí, posiblemente sí sea ahí, en la vcl, donde se muestra y eso te puede dar una idea del tipo de operación realizada para saber dónde buscar.

// Saludos
SIIIIIIIIIIIIIIIIIIIIIII señor XDDDDDDDDDDDDDd
Código Delphi [-]
procedure TWinControl.PaintControls(DC: HDC; First: TControl);
var
  I, Count, SaveIndex: Integer;
  FrameBrush: HBRUSH;
begin
  if DockSite and UseDockManager and (DockManager <> nil) then
    DockManager.PaintSite(DC);
  if FControls <> nil then
  begin
    I := 0;
    if First <> nil then
    begin
      I := FControls.IndexOf(First);
      if I < 0 then I := 0;
    end;
    Count := FControls.Count;
    while I < Count do
    begin
      with TControl(FControls[i]) do
        if (Visible or (csDesigning in ComponentState) and
          not (csNoDesignVisible in ControlStyle)) and
          RectVisible(DC, Rect(Left, Top, Left + Width, Top + Height)) then
        begin
          if csPaintCopy in Self.ControlState then
            Include(FControlState, csPaintCopy);
          SaveIndex := SaveDC(DC);
          MoveWindowOrg(DC, Left, Top);
          IntersectClipRect(DC, 0, 0, Width, Height);
          Perform(WM_PAINT, DC, 0);
          RestoreDC(DC, SaveIndex);
          Exclude(FControlState, csPaintCopy);
        end;
      Inc(I);
    end;
  end;
  if FWinControls <> nil then
    for I := 0 to FWinControls.Count - 1 do
      with TWinControl(FWinControls[i]) do
        if FCtl3D and (csFramed in ControlStyle) and
          (Visible or (csDesigning in ComponentState) and
          not (csNoDesignVisible in ControlStyle)) then
        begin
          FrameBrush := CreateSolidBrush(ColorToRGB(clBtnShadow));
          FrameRect(DC, Rect(Left - 1, Top - 1, Left + Width, Top + Height),
            FrameBrush);
          DeleteObject(FrameBrush);
          FrameBrush := CreateSolidBrush(ColorToRGB(clBtnHighlight));
          FrameRect(DC, Rect(Left, Top, Left + Width + 1, Top + Height + 1),
            FrameBrush);
          DeleteObject(FrameBrush);
        end;
end;

RestoreDC(DC, SaveIndex);

EN CONTROLS.DCU, gracias roman, por que puede seeeeeeeeeeeeer
Responder Con Cita
  #9  
Antiguo 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
pd: me pasa en mientras se ejecuta un while y muevo las forms o paso el mouse por encima de las labels o... mil cosas, pasa nosé por que, ni como xDD a ver si alguien tiene una idea, dioooooooooooz ke alivio
Responder Con Cita
  #10  
Antiguo 28-09-2006
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
¿Todas tus componentes son estándar o usas alguna de terceros?

// Saludos
Responder Con Cita
  #11  
Antiguo 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
solo uso las flatbox, y fixee el bug de delphi 6 de oscilación en las TImage, puede ser por eso?
Responder Con Cita
  #12  
Antiguo 28-09-2006
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
¡Válgame! ¿Qué #$%& es eso de fixear? Por favor, ¡utilicemos correctamente el castellano!

En fin, no conozco las FlatBox, y no sé a qué problema de oscilación te refieres pero ciertamente ambas cosas pueden estar influyendo.

Un método como PaintControls veo muy difícil que falle debido a programación que hagamos nosotros, a menos, claro está, que estemos programando cuestiones que involucren dibujado de elementos en el formulario. Vamos, que estamos hablando de métodos a bajo nivel por lo que no es frecuente que un error así esté en nuestro código.

Entonces mi principal sospechoso es alguna componente de terceros mal programada, y por el nombre, flatbox, sí suena a que sean componentes que se meten con la forma de dibujar las cosas.

Pero eso que mencionas de la oscilación también puede afectar. Si tiene que ver con un TImage es por que tiene que ver también con dibujado, y quiza el arreglo no sea del todo correcto.

¿Qué son las flatbox? ¿Te son imprescindibles? ¿Puedes reemplazarlas por componentes estándar y ver si siguen los problemas?

// Saludos
Responder Con Cita
  #13  
Antiguo 28-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
Hola!!
Ante todo muchas gracias por tu ayuda, antes estaba desesperado, al menos ya tengo una linea en la que descargar mi furia.

A ver.. las flatbox son paneles, botones y demás que tienen borde de 1px.. no me son imprescindibles pero nunca dieron problemas...
Respecto a lo de la oscilación.. repuse las backup de los TImage de delphi y sigue dando lo mismo, de todos modos, no creo que sea por culpa de las flatbox, me explico:
Antes no podia identificar el error, pero ahora me di cuenta que que se produce al mover las ventanas y dejar presionado el raton durante unos segundos, o bien, al maximizar otra y minimizarla, vamos, cuando vuelve a ser la ventana focus me tirar el error, no puede dibujarla, peroooo, atencion: Esto solo pasa cuando el bucle está en proceso y lleva más de 1000 numeros calculados, hasta entonces no hay problema, y si lo dejas calculando sin probocar que nada se tenga que dibujar tampoco tiene problemas...

Total, no sé que hacer.
Se os ocurre algo muchas gracias de nuevo.

Un saludo,
lag, lag_0.
Responder Con Cita
  #14  
Antiguo 28-09-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.079
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Si son las mismas "flatbox" que usé hace años... te digo lo que hice yo debido a los constantes errores que producían... ¡¡¡ las eliminé !!! y adiós problemas

Son unos componentes para poner controles típicos como botones, groupbox, etc... "planos", sin relieve.

Mi experiencia con ellos fue un desastre, aunque hace años.
Responder Con Cita
  #15  
Antiguo 29-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
Hay varios FlatPacks, yo utilizo dos, un tal MXFlatPack y FlatStyle...
Nunca me dieron problemas, pero, que solo succeda el error durante el bucle no indica que sea un problema que no tiene nada que ver con los componentes

Gracias por todo de verdad ><
Responder Con Cita
  #16  
Antiguo 29-09-2006
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
Pues bueno, haz una copia del proyecto y reemplaza las componentes. Si usas las gexperts te será relativamente fácil.

Si ya no da errores pues ya tienes al culpable. Si no, a seguir buscando.

Casimiro: ¿Algunas de las componentes que menciona lag_o son las que tu utilizaste? Porque me gustaría probarlas pero si son las que dices mejor ni me gasto.

// Saludos
Responder Con Cita
  #17  
Antiguo 29-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
Mañana me pongo, ya contare =) un saludo.
Responder Con Cita
  #18  
Antiguo 29-09-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.079
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por roman
Pues bueno, haz una copia del proyecto y reemplaza las componentes. Si usas las gexperts te será relativamente fácil.

Si ya no da errores pues ya tienes al culpable. Si no, a seguir buscando.

Casimiro: ¿Algunas de las componentes que menciona lag_o son las que tu utilizaste? Porque me gustaría probarlas pero si son las que dices mejor ni me gasto.

// Saludos
No, no eran esos, creo que eran "flatcontrols" o algo así, no estoy seguro del todo, pero no me suenan los nombres mencionados por lag_o
Responder Con Cita
  #19  
Antiguo 29-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
A ver xD
Lo remplase todo, vamos todo lo que era flat que son los únicos componentes de 3eros...
Compilo.. y cuando me tendria que dar el error....
El mismo error exactamente solo que ahora apunta a Classes.dcu y en la funcion:
Código Delphi [-]
function StdWndProc(Window: HWND; Message, WParam: Longint;
  LParam: Longint): Longint; stdcall; assembler;
asm
        XOR     EAX,EAX
        PUSH    EAX
        PUSH    LParam
        PUSH    WParam
        PUSH    Message
        MOV     EDX,ESP
        MOV     EAX,[ECX].Longint[4]
        CALL    [ECX].Pointer
        ADD     ESP,12
        POP     EAX
end;

Me marca el error en: ADD ESP,12.
Alguien tiene idea... yo me pierdo, este error me supera y me da que no me va a quedar otra que empezar el programa de cero y rezar para que no pase está vez...
Responder Con Cita
  #20  
Antiguo 29-09-2006
Avatar de lag_0
lag_0 lag_0 is offline
Miembro
 
Registrado: jul 2006
Posts: 131
Poder: 18
lag_0 Va por buen camino
Bueno...
Explico la conclusion xD (por si a alguien le interesa)
A la mierda todo el source. Empezaré de nuevo e intentaré hacerlo mejor más optimizado y con buena cara por que tengo muchas cosas pensadas para la nueva versión, pero...
A sido una gran putada, empezar de 0 ese programa es una jodienda bien grande, solo deciros que la culpa de lo de paint es de el FlatPack ese muy posiblemente, pero el otro error nosé de donde sale y cada vez peta por más lados así que... adios!

Gracias por la ayuda pero no pude hacer nada
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
Una petición extraña Arcioneo La Taberna 11 03-10-2006 15:43:30
exception arieliten Conexión con bases de datos 3 21-04-2005 00:27:59
Exception EDBEngineError lionsoft Varios 9 23-09-2004 15:27:02
Arithmetic Exception NickName Firebird e Interbase 4 13-09-2004 17:00:42


La franja horaria es GMT +2. Ahora son las 18:42:40.


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