Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   duda con ventanas (https://www.clubdelphi.com/foros/showthread.php?t=7730)

ronson 25-02-2004 09:29:56

duda con ventanas
 
Resulta que tengo un boton en mi aplicacion que abre una ventana de la siguiente forma:

Application.createform(TfrmAlbaranes,frmAlbaranes);

pues bien, mi pregunta es la siguiente, como podria hacer para que al pulsar el boton que me abra la ventana no me la abriese si ya hubiera o hubiese otra igual abierta?



Muchas gracias de antemano por vuestra atencion.

Nuria 25-02-2004 10:04:35

Hola ronson!

Código:

  if not assigned(frmAlbaranes) then
    Application.createform(TfrmAlbaranes,frmAlbaranes);

Saludos!

ronson 25-02-2004 10:45:27

no me termina de funcionar
 
Cuando quiero descargar de memoria una ventana llamo al evento release.

frmAlabaranes.release y cuando compruebo la siguiente vez si la venta esta creada con lo que me ha dicho nuria anteriormente:


if not assigned(frmAlbaranes) then
Application.createform(TfrmAlbaranes,frmAlbaranes);

me dice que esta creada luego me creo que no destruyo bien la ventana.


que debo hacer?

ronson 25-02-2004 11:10:24

sigo de pruebas y nada
 
he probado con DESTROY y poniendo en el evento onCLose del formulario las intrucciones:


frmAlbaranes.release

pero nada cuadno intento abrir la ventana me sale error, me dice que ya esta abuerta o cargada en memoria.

que hago mal?

Nuria 25-02-2004 11:29:02

Pon en el OnClose del form:

Código:

    // Libero memoria del formulario
  Action:= CaFree;
  // Apunto a nulo el form, para que a la hora de llamarlo desde el form
  // principal, sepa si está activo o no.
  frmAlbaranes:= nil;

Saludos!

ronson 25-02-2004 12:00:23

ok, gracies!!
 
muchas gracias nuria ha sido un placer:

;)

ronson 25-02-2004 12:02:17

bueno ya siguiendo un poco con este hilo.
 
Como seria el mismo proceso para un DataModule?.


Por que Action no tiene.


gracias nuria de verdad!!!

ronson 25-02-2004 12:04:31

ya ta nuria!!
 
Seria:

si DMAlbaranes es el data module asociado a alaranes:


DMAlbaranes.Destroy;
DMAlbaranes:=nil;


y ya esta.


Luego se crea maravillosamente.

saluditos y gracias por tu atencion de verdad.

roman 25-02-2004 15:22:57

Cita:

Empezado por ronson
DMAlbaranes.Destroy;
DMAlbaranes:=nil;

Nada más apuntar que el método recomendado para liberar un objeto, en este caso el módulo de datos, es Free y no Destroy. Por otra parte puedes liberarlo y ponerlo a nil con una sóla llamada:

FreeandNil(DMAlbaranes);

// Saludos

ronson 26-02-2004 08:40:17

muchas gracias
 
muchas gracias, asi lo hare roman




SALUDOS:o


La franja horaria es GMT +2. Ahora son las 03:05:46.

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