Ver Mensaje Individual
  #4  
Antiguo 27-11-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Otra forma más:
Código Delphi [-]

// si lo encuentra, devuelve en Result el Form
// si no lo encuentra, devuelve Nil
function FormExists(NombreClase:String):TForm;
var i:integer;
begin
  Result:= nil;
  for i:= 0 to Screen.FormCount - 1 do
    if Screen.Forms[i].ClassName = NombreClase then
    begin
       Result := TForm(Screen.Forms[i]);
       Break;
    end;
end;

// uso:
var F:TForm;
begin
  F:=  FormExits('TForm1');
  if Assigned(F) then
    F.BringToFront
  else
  begin 
// necesitaría tener la clase de esta ventana para hacer:
  F := TClaseVentana.Create(Application);
  F.Show;

  end;
El nombre del Formulario no es seguro, si creas tres ventanas de tipo TForm1, se llamarán Form1, Form1_1, Form1_2 y al tiempo de buscar se complican las cosas, es mejor usar su tipo o usar fábrica de clases (busca en el foro) pero ya se empieza a complicar las cosas.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita