Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error EAccessViolation !? (https://www.clubdelphi.com/foros/showthread.php?t=57984)

ManelC 03-07-2008 22:26:44

Error EAccessViolation !?
 
Hola a todas/todos:

me estoy encontrando con el error EAccessViolation ... in module rtl60.blp
He leido que este error suele darse por problemas de objetos no liberados o no instanciados.

A mi me da en un simple ".visible=false". El trozo de código es el que sigue. Tengo un form con dos panels que los pongo visibles o invisibles emulando un wizard:


if blnAss then
begin
pnlAssentaments.Top := self.pnlGrids.Top;
pnlAssentaments.left := self.pnlGrids.Left;
pnlAssentaments.Width := self.pnlGrids.Width;
pnlAssentaments.Height := self.pnlGrids.Height;
pnlGrids.Visible := False;
pnlAssentaments.Visible := True;
chkRecursiva.Visible := True;
pnlTexte.Caption := ' ... '

...
end
else
....

Es la linea pnlGrids.Visible := False; la que "casca". Lo bueno es que si pongo el visible a False con la pantalla de debug, funciona!!! pero casca la siguiente "pnlAssentaments.Visible := True;"

No se que hacer ni que mirar :confused:... ¿Alguna idea?

Muchas gracias
Manel

coso 03-07-2008 22:55:23

Hola,

suena a eso, a que tienes algo por memoria por alla descolgado. Revisa que hayas eliminado correctamente todos los objetos que has creado o datos que has cargado (un bitmap, quiza). saludos.

ManelC 03-07-2008 23:01:58

En eso estoy ... pero no veo que puede ser ... lo seguiré revisando.
Merci!

Neftali [Germán.Estévez] 04-07-2008 12:48:39

¿Dónde tienes colocado este trozo de código?

ManelC 04-07-2008 21:43:40

Lo intento aclarar Neftali (poner mas código creo que lo liará). Tengo una pantalla donde se introducen facturas. Funciona a modo de wizard, primero presenta los diferentes tipos de facturas y después, en función del tipo pregunta unas cosas o otras. Esto lo hago con dos panels. La mecánica es:
-Presento un panel, el usuario escoje un tipo
-Pongo invisible el primer panel i visible el segundo, donde introducen los datos
-Al finalizar se presenta otra vez el primer panel (para seguir introduciendo facturas). Es cuando pongo el segundo panel invisible cuando casca

No está al crear o eliminar el formulario. Todos los controles estan puestos en diseño. Lo único "raro" es una pantalla modal en el segundo panel, pero la libero correctamente ...

No se si me he explicado mejor ...

Muchas gracias Neftali

Caral 04-07-2008 21:49:07

Hola
No estoy seguro, pero creo que no se puede hacer invisible un grid y luego hacerlo visible, me imagino que tiene que ver con la tabla.
Si la tabla no tiene donde poner la informacion, no funciona, da error.
Creo que se podria probar a la hora de hacer invisible el panel que contiene el grid desconectar la tabla.
Saludos

coso 04-07-2008 21:52:46

hola de nuevo,

puedes poner el codigo donde creas la 'ventana modal'?

ManelC 04-07-2008 22:04:32

Hola Caral y Coso.

Caral. En otra pantalla hago algo similar (es un stringgrid ojo, no está conectado a bbdd) y funciona correctamente. Pongo invisible el panel que contiene el grid.

Coso. La pantalla modal se abre (si la abre el usuario) durante la introducción de datos. Al finalizar es cuando se pone invisible el panel.

Hoy intentaré seguir paso a paso todo el codigo y verificar que no se haya colado algun objeto que no libero ...

Gracias a los dos.
Manel

felipe88 04-07-2008 23:17:54

Hola,

Te comento que en estos momentos me encuentro realizando una pequeña aplicacion que trabaja de este modo, para evitar problemas con las tablas que tiene como dice Caral uso el DataModule. Solo se trata de jugar con las propiedades visible o true de los forms, note que cuando uso los TabSheet estos deben estar siempre en el primero, de lo contrario me genera un error (No puede hacer visible el objeto); igualmente la cantidad de ventanas o procesos que lleve hara que la aplicacion consuma mas recursos y por consiguiente que esta falle.

Creo que deberias revisar con mas detalle lo que "carga" tu aplicacion y controlar (En tu caso los Paneles) para que estos no te generen el error e igualmente los accesos a los datos; espero te sirva de ayuda :)

ManelC 05-07-2008 21:58:42

Gracias felipe88, lo revisaré a fondo, y os tendre informados ...
Saludos!!


La franja horaria es GMT +2. Ahora son las 16:44:51.

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