Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #6  
Antiguo 24-05-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 31
Lepe Va por buen camino
El mensaje original es de hace 4 años... pero bueno, las cosas en ese sentido no han cambiado mucho, los MDI siguen estando por ahí (aunque se desaconseja su uso) y la gente trabaja como quiere y le da la gana (esto último siempre ha sido así ).

El método que propones, me gusta aunque le veo un bug que no me gusta. La ventana que se abre oculta la barra de herramientas del supuesto MDI, al no ser un entorno MDI real, es normal que ocurra.

Otra solución del mismo estilo, es crear las ventanas asignándoles el padre hacia la ventana principal:
Código Delphi [-]
  childWindow := TForm1.Create(frmMain);
  childWindow.Parent := frmMain // esta línea se me olvidó y es la más importante  
Aunque tampoco me convence mucho los efectos que tiene.

Yo si prefiero a los MDI reales y la forma de trabajo con ellos me gusta bastante.

No suelo ocultar las ventanas, sino que las destruyo, pero alguna vez intenté esto y funcionaba:
Código Delphi [-]
type
  TBaseForm = class(TForm)
  private
    Fvisible: Boolean;
    procedure SetVisible(const Value: Boolean);
  public
    { public declarations }
    constructor Create(Aowner:TComponent); override;
    procedure Show;
    procedure Hide;
  published
    property Visible:Boolean read Fvisible write SetVisible;
  end;

implementation

uses publica;

{$R *.dfm}

constructor TBaseForm.Create(Aowner: TComponent);
begin
  inherited Create(aowner);
  visible :=  fsvisible in FFormState;
end;

procedure TBaseForm.Hide;
begin
  ShowWindow(Handle, sw_HIDE);
  FVisible := False;
  DoHide;
end;

procedure TBaseForm.SetVisible(const Value: Boolean);
begin
  if Value <> FVisible then
  begin
    if Value  then  Show
    else Hide;
  end;
end;

procedure TBaseForm.Show;
begin
  ShowWindow(Handle, sw_Show);
  FVisible := True;
  DoShow;
end;

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

Última edición por Lepe fecha: 25-05-2007 a las 16:44:46. Razón: faltaba childwindow.Parent := frmMain
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 18:25:18.


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