Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Orientacion con Create(self) (https://www.clubdelphi.com/foros/showthread.php?t=52700)

pmtzg 28-01-2008 22:28:21

Orientacion con Create(self)
 
Hola compañeros
deseo compartir con ustedes una pequeña situación que tengo
yo espero que me puedan ayudar
Tengo un pequeño programa que maneja menus
para ejecutar un form y lo hago de la siguiente manera :

Código Delphi [-]
 
Begin
 
form1:=Tform1.Create(self);
try
   form1.Showmodal;
finally
   form1.Free;
end;
end;

me ejecuta bien el siguiente form1 sin problema, salgo y lo vulvo a llamar
y se activa , pero mi problema consiste en que cuando en este form1 tengo
Edits y comienzo a llenar de datos todos y cada uno de ellos
y sin no quiero seguir o cierro el form1 , lo cierra bien
pero si vuelvo a llamar al form1 me manda un error

que dice :

Access violation at address FFFFFFF5. Read of address FFFFFFF5

y me señala :

Código Delphi [-]
form1:=Tform1.Create(self);

yo creo que estoy comentiendo un error pero no se cual
me podrian dar su punto de vista
mil gracias

maeyanes 28-01-2008 22:34:01

Hola...

Si vas a crear un objeto (TForm en tu caso) y luego lo vas a liberar en el mismo bloque puedes hacer la llamada como Form1 := TForm1.Create(nil)...

Otra forma de conseguir lo que necesitas es:

Código Delphi [-]
with TForm1.Create(nil) do
  try
    ShowModal
  finally
    Free
  end

El error que obienes es por que tal vez Self ya no esté apuntando a un objeto válido en memoria.



Saludos...


La franja horaria es GMT +2. Ahora son las 21:16: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