Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Extraño error - Delphi 7 (https://www.clubdelphi.com/foros/showthread.php?t=96289)

ArtPortEsp 04-07-2023 20:51:24

Extraño error - Delphi 7
 
Buen dia;

tengo un problema extraño...

en una aplicación desarrollada bajo el modelo SDI, quise probar cambiando el menú a MDIform y 1 forma a MDIChild

al abrir la forma me dio un mensaje de violación de acceso y regrese el menú a fsNormal así como también la forma

pero el problema de la violación de acceso persiste...

en el código la primera línea es la de la forma que me da el error
en la segunda linea hago el mismo procedimiento con otra forma SIN problema

Código:

    if not Assigned(Fcappre) then Fcappre := TFcappre.Create(Application);


    if not Assigned(Fcapend) then Fcapend := TFcapend.Create(Application);

Después de enviar el mensaje de Violacion de acceso, uno puede usar la forma sin problema.

Alguna Idea?

duilioisola 05-07-2023 08:24:09

¿Habría que ver dónde da el error?
  • En la línea que muestras.
  • En una línea posterior, donde se utilice Fcappre.
  • Dentro de TFcappre.Create
  • Dentro de TFcappre.OnShow

Podría ser que Fcappre no se pusiera a nil cuando cierras la ventana y por eso todavía apunte a una dirección de memoria que ya no contiene el formulario.

Código Delphi [-]
Fcappre := TFcappre.Create()
...
Fcappre.Show
...

TFcappre.OnDestroy()
begin
   inherited;
   Fcappre := nil;
end;

Neftali [Germán.Estévez] 06-07-2023 12:35:50

Cita:

Empezado por ArtPortEsp (Mensaje 551942)

pero el problema de la violación de acceso persiste...
en el código la primera línea es la de la forma que me da el error

Código:

    if not Assigned(Fcappre) then Fcappre := TFcappre.Create(Application);


Poca información para saber lo que está pasando.
El Create del formulario de la clase TFcappre, es lo que debe estar tando el error.

Deberías debuggar ese formulario línea a línea.

Empezando por si tienes algo definido en los eventos OnCreate/OnShow.


La franja horaria es GMT +2. Ahora son las 05:39:38.

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