Ver Mensaje Individual
  #3  
Antiguo 29-07-2007
Sinaloense Sinaloense is offline
Miembro
 
Registrado: oct 2003
Posts: 139
Reputación: 22
Sinaloense Va por buen camino
Saludos, aqui hay una solucion:

Primero:
En la forma que creas al presionar el botón en el evento onClose pon entas línea:

Código:
   Action := caFree;
de esta manera cada vez que cierres la forma se liberará sola sin invocar el destructor free.

Ahora necesitas una función que te diga si la forma que quieres crear ya está creada, pudes usar esta:

Código:
function TForm2.existe_forma(AClase: string): Boolean;
var
 i:Integer;
begin
  for i := 0 to Screen.FormCount - 1 do
    if Screen.Forms[i].ClassName = AClase then
      Result := True
    else
      Result := false;
end;

Ahora en el botón que crea la forma puedes poner este código, yo estoy creando la forma 'Form3':

Código:
 if not existe_forma('TForm3') then begin
    Form3 := TForm3.Create(Self);
    Form3.Show;
  end;
Espero te sirva.
Responder Con Cita