Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como averiguar si una unit o datamodule ya está abierto (https://www.clubdelphi.com/foros/showthread.php?t=44995)

jjoliveras 20-06-2007 10:42:30

Como averiguar si una unit o datamodule ya está abierto?
 
Buenos días foreros.

Alguien podría decirme como averiguar si un datamodule o una unit ya están creadas para no volverlas a crear con el consiguiente problema de violaciones y demás.

Probé a ponerlo de la siguiente forma pero lo da siempre como que está abierto.

Código Delphi [-]
if UDMDatamodule = nil then
  begin
    lCreado := False;
    UDMDatamodule := TUDMDatamodule.Create(self);
  end;

Busqué en los foros pero no e visto que nadie tenga este problema, a lo que me lleva o que a nadie se le a planteado (cosa que dudo) o que seguramente soy un pardillo.

Gracias por vuestra ayuda.

Saludos.

gluglu 20-06-2007 10:58:49

Código Delphi [-]
if not Assigned(UDMDatamodule) then
  begin
    UDMDatamodule := TUDMDatamodule.Create(self);
  end;

Si liberas la memoria de un DataModule, o de cualquier otro Form, en tiempo de ejecución, en vez de Free deberías utilizar FreeAndNil, o adicionalmente al Free, asignarle Nil a dicho Form o DataModule.

Consulta al respecto este hilo por ejemplo.

ClNaU2 ;)

jjoliveras 20-06-2007 11:28:56

Gracias por la respuesta y por la información adicional gluglu, me funciona bien.;)


La franja horaria es GMT +2. Ahora son las 09:52:27.

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