PDA

Ver la Versión Completa : Se puede colocar un form dentro de un TPanel?


oscarac
10-05-2011, 23:27:25
buenas tarde
imaginemos que tengo un form Principal y esta dividido en 2 partes la parte izquierda donde estan las opciones y la parte derecha donde se mostraran los form que seran llamados dependiendo de la opcion que escoja

la pregunta es... se puede activar un form dentro de un Panel ? con el objeto de tener una mejor presentacion

algo asi como el outlook ?

Caral
11-05-2011, 00:01:00
Hola
Aqui tienes un ejemplo.
Saludos

ecfisa
11-05-2011, 00:04:23
Hola oscarac.

Si se puede, hay que especificar el panel como parent:

with TForm2.Create(nil) do
begin
Top:= 0;
Left:= 0;
Height:= Panel1.Height;
Width:= Panel1.Width;
Parent:= Panel1;
Show;
end;


Saludos.

Caral
11-05-2011, 00:07:50
Hola
Mi codigo es mas corto.......:D:D
Estos aprendices....:D:D:D;)
Saludos Maestro.

ecfisa
11-05-2011, 00:13:45
Hola
Mi codigo es mas corto.......:D:D
Estos aprendices....:D:D:D;)
Saludos Maestro.

No lo ví todavía, pero encima es más rápido... :(:D

Un abrazo.

Edito: Y es más corto. :)

oscarac
11-05-2011, 00:15:24
ohhhhhhhhhhhhhh

se agradece !!!

oscarac
11-05-2011, 06:06:46
funciona bien pero me ha generado otro problema

tengo un query y un edit dentro del formulario que se muestra en el Panel
pero no tengo acceso al edit....

es normal eso? no lo creo
alguna idea?

ecfisa
11-05-2011, 09:36:54
Hola oscarac.

Creo que al ser el parent de Form2 un TPanel y no un TForm lo hace visible pero no lo trae al frente, por lo que no recibe el manejo del foco.

Lo podés solucionar agregando:

begin
with TForm2.Create(Self) do
begin
Parent:= Panel1;
Align:= alClient;
Show;
Edit1.SetFocus;
end;
end;


Saludos.

Neftali [Germán.Estévez]
11-05-2011, 11:14:55
Si se puede, hay que especificar el panel como parent
+1

Aqui tienes un ejemplo...

+1

Aun hay otra, que aunque no supera en "corto" la de Caral, tiene la ventaja de que elimina el título de la ventana y hace el Dock del form como si fuera otro componente (o un Frame). Para ello se usa el procedimiento ManualDock.


Form2.show;
Form2.ManualDock(Panel1, nil, alClient);
Form2.Align := alClient;


Un saludo.

ecfisa
11-05-2011, 11:35:03
Aun hay otra, que aunque no supera en "corto" la de Caral, tiene la ventaja de que elimina el título de la ventana y hace el Dock del form como si fuera otro componente (o un Frame). Para ello se usa el procedimiento ManualDock.

+1

Cuanto más leo más comprendo lo mucho que me falta aprender... ;)

Un saludo. :)

Caral
11-05-2011, 13:33:37
Hola
Ahora si nos liamos, Neftali nos gano con esto del ManualDock.
Vamos a tener que inventar el AutomaticDock :D
Saludos

Neftali [Germán.Estévez]
11-05-2011, 13:39:44
Vamos a tener que inventar el AutomaticDock :D


:D:D:D Ese estaría bien.