Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Pregunta Noob (https://www.clubdelphi.com/foros/showthread.php?t=72998)

adonias 24-03-2011 22:31:32

Pregunta Noob
 
2 Archivos Adjunto(s)
Hola, una pregunta de novato.

Tengo un MDI, pero quiero que cuando cree los hijos, se creen dentro del Main Form.

En la foto 1, cuando muevo el form creado, se sale de los marcos.

En cambio en la foto 2, si muevo el form creado, se queda dentro de los marcos

Gracias

oscarac 24-03-2011 22:46:03

me parece que deberias revisar el
formstyle

Lenny 25-03-2011 00:10:55

Si entendi lo que necesitas, tienes que cambiar como dice oscarac en FormStyle a fsMDIChild...

Saludos!!!

adonias 25-03-2011 13:27:32

Super Facil!


gracias se pasaron!

Lenny 26-03-2011 15:44:28

Pero ojo!!! para que funcione bien deves tomar ciertas precauciones:

Primero, para que no se abra una tras otra la ventana "Hija" y evitar errores deves agregar este codigo:

Código Delphi [-]
type
  THome = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure AlCerrar( Sender: TObject; var Action: TCloseAction );
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
Código:

procedure AlCerrar( Sender: TObject; var Action: TCloseAction );
Esa Linea...
Código Delphi [-]
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Home: THome;

implementation

{$R *.dfm}

uses Form1;

procedure THome.AlCerrar( Sender: TObject; var Action: TCloseAction );
begin
Action := caFree;
end;

procedure...........

Código:

procedure THome.AlCerrar( Sender: TObject; var Action: TCloseAction );
begin
Action := caFree;
end;

Esta parte...

Luego, en "PROJECT", "OPTIONS", "FORMS" dejas la Form Hija en "AVALIABLE FORMS" y por ultimo, abres la Form Hija con este codigo:

Código Delphi [-]
procedure THome.Button1Click(Sender: TObject);
var
  I: Integer;
begin
  for I := 0 to Pred(MDIChildCount) do
    if MDIChildren[i] is TForm2 then
    begin
      MDIChildren[i].BringToFront;
      Exit
    end;
  with TForm2.Create(Application) do
  begin
    FormStyle := fsMDIChild;
    OnClose := AlCerrar;
    Show
  end
end;

Todo en un Button

Esop... nada nuevo, esta es la misma solucion que me dieron los chicos del foro, que en su momento me tenia de cabeza y gracias a los comentarios de los expertos pude solucionar mucho... Saludos!!!


La franja horaria es GMT +2. Ahora son las 20:39:00.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi