[Lazarus] embedding fomrs into forms

Mattias Gaertner nc-gaertnma at netcologne.de
Sat May 17 16:36:27 CEST 2008


On Sat, 17 May 2008 16:03:24 +0200
Marc Santhoff <M.Santhoff at t-online.de> wrote:

> Am Samstag, den 17.05.2008, 14:15 +0200 schrieb Marc Santhoff:
> > Hi,
> > 
> > is it possible to use a TForm inside a TForm?
> > 
> > Imagine a program consisting of a frame and some plug-ins. The
> > plug-ins should get designed using lazarus, each having it own
> > form. When loaded those forms would be embedded into the main
> > applications form as a frame, e.g. each on a tab of a notebook or
> > similar.
> 
> Testing showed it does not work, if done like this:
> 
> procedure TForm1.FormCreate(Sender: TObject);
> var
>   f2: TForm;
> begin
>   f2 := TForm2.Create(Panel2);
>   f2.show;
> end;

The parameter to the Create constructor is the 'Owner', it does not set
the 'Parent'. Use instead:

  f2 := TForm2.Create(Panel2);
  f2.Parent:=Panel2;
  f2.Visible:=true;

 
> the secomd form is shown seperately and managed by the window manager.
> Using MDI didn't do it either.
> 
> > If it is not possible, what alternative ways of designing something
> > like that should I consider?
> 
> The last possibilities I see are streaming parts of the form myself or
> using the dock manager thingy. Can someone explain how docking would
> be done (or point me to the docs), please?

Here is a start:
http://wiki.lazarus.freepascal.org/Docking

Mattias



More information about the Lazarus mailing list