Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2004
burasu burasu is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz - España
Posts: 183
Poder: 22
burasu Va por buen camino
Talking

Mi metodo es el siguiente:

Código:
        with TForm_Pantalla.Create(self) do begin
                if ShowModal = mrOk then begin
                        // Si realizo alguna operación despues de aceptar la otra 
                        // pantalla añado el código aquí
                end
                else begin
                        // Lo mismo si cancelo.
                end;
                Free;
        end;
Con esta forma evito crear y cerrar y terminar perdiendome. Así siempre que abro la ventan se que terminaré cerrandola.
Responder Con Cita
  #2  
Antiguo 09-09-2004
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por burasu

Código:
  try
        with TForm_Pantalla.Create(self) do begin
                if ShowModal = mrOk then begin
                        // Si realizo alguna operación despues de aceptar la otra 
                        // pantalla añado el código aquí
                end
                else begin
                        // Lo mismo si cancelo.
                end;
   finally
                Free;
   end;
        end;
He añadido el try finally para hacer más seguro el bloque. Si hay algún tipo de excepción mientras se muestra la ventana, que libere la ventana.

Y supongo que la variable que crea Delphi en la unidad de la ventana
Código Delphi [-]
var Form_Pantalla: TForm_Pantalla;
la eliminarás, ya que no la usas, es un puntero, no ocupa mucho espacio en memoria mientras que no la instancies, pero si tienes muchas ventanas, se van sumando los 4 bytes de cada puntero.

El método de chicolita lo veo muy correcto.

Saludos
Responder Con Cita
  #3  
Antiguo 09-09-2004
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Pues con permiso del personal, yo añadiré un try...except al código propuesto

Código Delphi [-]
resourcestring
  errCreatingForm = 'Error en la aplicación. Mensaje de error'#13#13'%s';

implementation

..............

Form1 := TForm1.Create(Self);
try
  try
    Form1.ShowModal;
  finally
    FreeAndNil(Form1);
  end;
except
  on E: Exception do
    Application.MessageBox(PChar(Format(errCreatingForm, [E.Message])), 'Atención', MB_OK);
end;

Es que me gusta ver el tipo de excepción lebantada en una pantallita controlada po mi, manias de uno, ya véis

Responder Con Cita
  #4  
Antiguo 09-09-2004
burasu burasu is offline
Miembro
 
Registrado: may 2003
Ubicación: Cádiz - España
Posts: 183
Poder: 22
burasu Va por buen camino
Si efectivamente Lepe, esta variable
Código:
var Form_Pantalla: TForm_Pantalla;
la elimino, ya que no la utilizo para nada.

Yo tambien utilizaba el metodo de chicolita, pero digamos que tuve una mala experiencia por problemas de memoria en un proyecto, y me asesoraron que ese metodo no era muy correcto ¿?¿? así que utilizo este otro y así siempre me aseguro que no dejo la Form alojada en memoria una vez cerrada.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 21:51:59.


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
Copyright 1996-2007 Club Delphi