anubis
15-08-2016, 02:11:39
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:
procedure TPrincipal.SpkLargeButton8Click(Sender: TObject);
begin
if not assigned(fproveedores) then //Para verificar que no ha sido asginado/abierto el form y no lo abra mas de una vez.
begin
fproveedores:=tfproveedores.Create(application);
fproveedores.Parent:=panel; //Asignamos parent al panel para que se abra dentro de él.
fproveedores.Show;
end;
end;
En las propiedades del form que queremos abrir, le tenemos que asignar:
align:=alNone
BorderStype:=bsSizeable
FormStyle:=fsNormal
En el evento OnClose del form le poneis fproveedores.nil, 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.
procedure Tfproveedores.FormResize(Sender: TObject);
begin
principal.contenedor.refresh;
end;
Espero que a alguien le sirva este pequeño resumen.
Gracias
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:
procedure TPrincipal.SpkLargeButton8Click(Sender: TObject);
begin
if not assigned(fproveedores) then //Para verificar que no ha sido asginado/abierto el form y no lo abra mas de una vez.
begin
fproveedores:=tfproveedores.Create(application);
fproveedores.Parent:=panel; //Asignamos parent al panel para que se abra dentro de él.
fproveedores.Show;
end;
end;
En las propiedades del form que queremos abrir, le tenemos que asignar:
align:=alNone
BorderStype:=bsSizeable
FormStyle:=fsNormal
En el evento OnClose del form le poneis fproveedores.nil, 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.
procedure Tfproveedores.FormResize(Sender: TObject);
begin
principal.contenedor.refresh;
end;
Espero que a alguien le sirva este pequeño resumen.
Gracias