Ver Mensaje Individual
  #4  
Antiguo 01-11-2010
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Reputación: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ricardo_yah.

Ese error surge por que te falta declarar la cabecera de la función MostrarChild en la Clase TForm1, o por que la clase del Form no se llama TForm1.

Te pongo el código completo el cuál acabo de probar para pegarte el ejemplo y funciona perfectamente:
Código Delphi [-]
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure MostrarChild(AClass: TFormClass);  // declaracion que te falta
  public
  end;

var
  Form1: TForm1;

implementation {$R *.dfm}

uses Unit2; // unidad donde está declarado TForm2

procedure TForm1.MostrarChild(AClass: TFormClass);
var
  i: Integer;
begin
  for i:= 0 to Screen.FormCount -1 do  // 0 hasta MDIChild abiertos
    if Screen.Forms[i] is AClass then  // Si está el que buscamos
    begin
      Screen.Forms[i].WindowState:= wsNormal; // a modo normal
      Screen.Forms[i].BringToFront;           // traerlo al frente
      Exit;                                   // encontrado, salir
    end;
  with AClass.Create(Self) do Show;           // crearlo
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  MostrarChild(TForm2);
end;

end.

Por supuesto que TForm1 tiene que estar como fsMDIForm y Form2 como fsMDIChild respectivamente. Y si no se llamasen TForm1 y TForm2, cambiar los nombres por los que les hayas asignado.

Es conveniente (aunque no necesario) que quites el Form MDIChild de la creación automática de forms:
Project -> Options -> Forms -> Auto-create forms


Saludos.

Última edición por ecfisa fecha: 01-11-2010 a las 01:45:37.
Responder Con Cita