Hola amigos,
Como he visto que en varios post preguntando lo mismo para lazarus, voy a aportar lo que he recogido y resumido de otros post.
En primer lugar colocamos en el form principal un panel vacio, en la propiedad align le asignais alClient.
Si queremos que, al pulsar un boton, se abra el form debeis poner:
Código Delphi
[-]procedure TPrincipal.SpkLargeButton8Click(Sender: TObject);
begin
if not assigned(fproveedores) then begin
fproveedores:=tfproveedores.Create(application);
fproveedores.Parent:=panel; fproveedores.Show;
end;
end;
En las propiedades del form que queremos abrir, le tenemos que asignar:
Código:
align:=alNone
BorderStype:=bsSizeable
FormStyle:=fsNormal
En el evento OnClose del form le poneis
, para que quede desasignado y podamos abrirlo despues.
Con eso ya nos abrira el form dentro del panel.
Una puntualizacion adicional.
Como en mi caso tengo algun problema a la hora de maximizar o cambiar el tamaño porque no refresca bien, lo que hice fue, meter en la clausula uses del form, vinculo con el form principal asi, a la hora de hacer un onResize, haga un refresh del panel.
Código Delphi
[-]
procedure Tfproveedores.FormResize(Sender: TObject);
begin
principal.contenedor.refresh;
end;
Espero que a alguien le sirva este pequeño resumen.
Gracias