Ver Mensaje Individual
  #5  
Antiguo 17-08-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Si te entiendo, tu creas una forma y utilizas una variable que apunta a ella. Algo como esto:

Código Delphi [-]
  Miforma:= TMiforma.Create(nil);

Sin embargo a la hora de borrarlo utilizas la lista Forms de la variable Screen, supongo que lo haces así para no tener que preocuparte de que formulario fue el ultimo que abriste. Pero como has dicho, el contenido de la variable no cambia y esta pasa a apuntar a una forma que ya no existe. Se me ocurre una posible solución:

Código Delphi [-]
function Existe(F: TForm): Boolean;
var
  i: integer;
begin
  for i:= 0 to Screen.FormCount - 1 Do
    if Screen.Forms[i] = F then
    begin
      Result:= TRUE;
      Exit;
    end;
  Result:= FALSE;
end;

Esta función te dirá si la variable apunta a una forma real, o por el contrario su valor ya no sirve.
Responder Con Cita