Ver Mensaje Individual
  #4  
Antiguo 25-05-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Reputación: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

No es que no te explicaras bien; es que no hablaste para nada de una aplicación de "tipo MDI".

La verdad, no consigo entender qué quieres decir con "como si estuviera cada uno en un frame".

¿La aplicación es de "tipo MDI"? Si no lo es, ¿qué es lo que quieres decir con mostrar los formularios como si cada uno estuviera en un "frame"?

Para mostrar un formulario en un "TPanel" podrías hacer algo así:

Código Delphi [-]
  procedure TForm1.Button1Click(Sender: TObject);
  var
    frm2: TForm2;
  begin
    frm2 := TForm2.Create(Self);
    frm2.Parent := panel;
    frm2.Align := alClient;
    frm2.Show();
  end;

Como se puede ver, el código de más arriba se sitúa en el evento "OnClick" de un botón situado en un formulario de nombre "Form1". Al pulsar en el botón se crea una instancia de un fomulario de nombre "Form2". A dicho formulario "Form2" le asignamos como "padre" un "TPanel" que está en "Form1". Acto seguido hacemos que el formulario ("Form2") ocupe todo el espacio del "TPanel" dando a la propiedad "Align" del formulario el valor "alClient". A continuación mostramos el formulario "Form2". Cabe añadir que a la propiedad "BorderStyle" del formulario "Form2" le hemos dado el valor "bsNone".

Según lo que yo entiendo que quieres hacer podrías poner dos "paneles" (TPanel) en un formulario en el lugar que te sea necesario y después utilizar estos dos "paneles" para mostrar un formulario en cada uno de ellos.

No puedes añadir un "frame" a un formulario si antes no creaste el propio "frame" que quieres añadir. Los "frames" están bien, por ejemplo, para "montar" una especie de plantilla. Me explico: creas un nuevo "frame" y añades un botón en el mismo (vale, es un ejemplo, nada más) y codificas lo que sea que tiene que llevar a cabo dicho botón cuando sea pulsado, por ejemplo, mostrar un mensaje al usuario.

Una vez hecho eso puedes añadir dicho "frame" a un formulario y a un segundo formulario y a un tercero, etc.... el código que consigue mostrar el mensaje al usuario de que antes hablamos estará en el "frame" y no en ninguno de los formularios a que se añade dicho "frame".

En definitiva, el uso del "frame" vale en este caso para no tener que repetir en cada formulario ni el botón ni el código que muestra el mensaje al usuario, con lo que esto implica a la hora de mantener dicho código, por ejemplo.

De todas maneras creo que me estoy yendo por los cerros de Úbeda... ¿lo que he dicho te sirve de algo o te he liado más que otra cosa?

Actualización: Más arriba dije "No es que no te explicaras bien; es que no hablaste para nada de una aplicación de "tipo MDI"... Bueno. Tampoco tenías que haberlo hecho. En un mensaje posterior tuyo quieres explicarte diciendo que lo que pretendes hacer es "como una aplicación MDI", esto es, que no tenías que haberte referido a ello en tu primer mensaje, y así me disculpo, porque tal vez pecara un poco de prepotente, cuando soy el menos indicado: valga que no era esa mi intención.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 25-05-2005 a las 04:48:43. Razón: (corrección del texto)
Responder Con Cita