Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-05-2005
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Talking Como se utiliza un TFrame

Hola

He leido en la ayuda de delphi ,que un Tframe es un contenedor de componentes como el TForm . Pero que el TFrame se puede contener dentro de un TForm, lo que no explica es como hay que hacer para que el TFrame , se contenga dentro de un TForm.

Digo yo ,el TFrame , quedaria como un TPanel ???

Y cual es entonces la utilidad del TFrame si es como un TForm .Realmente no se la cual es la utilidad verdadera del TFrame.
Responder Con Cita
  #2  
Antiguo 02-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Un par de razones: claridad y reuso de código.

Un ejemplo, tienes un DBLookupComboBox para editar un campo de una tabla, por ejemplo el id del producto en una tabla de pedidos. A muchos usuarios se les facilita más escribir directamente el código del producto que seleccionarlo de una lista. La lista es útil cuando aún no se conocen los códigos pero conforme se usa la aplicación la mayoría de usuarios se los aprende.

Entonces conviene colocar, además del DBLookupComboBox, un Edit para capturar el código directamente.

Pero estos dos controles deben sincronizarse: cuando cambia el valor de uno el otro debe reflejar el nuevo valor. Esto implica que debes programar eventos para la sincronización.

Todo esto es muy sencillo. Pero ahora suponte que necesitas este par de controles en cuatro, cinco o más formularios.

¿Vas a repetir todo el código?

Mejor colocas el par de controles en un Frame. Además de que sacas código estorboso del formulario, este Frame lo puedes colocar en tantos formularios desees.

// Saludos
Responder Con Cita
  #3  
Antiguo 02-05-2005
[David] David is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Málaga
Posts: 417
Poder: 21
David Va por buen camino
Vale , ya pillo la idea , voy hacer un programita con un TFrame .Pero lo que aún no sé y tampoco lo veo en la ayuda de delphi es como insertar el TFrame en un TForm determinado , lo que quiero decir es si se inserta como si fuera un TPanel , y si es así pues como se hace esto.
Responder Con Cita
  #4  
Antiguo 02-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Supongo que será similar a Delphi. Primero creas el frame con File|New|Frame con lo que te aparece la ventanita similar al formulario en donde colocas tus controles.

Luego escoges la componente Frames de la paleta. Al insertarla en el formulario te aparece una lista con los frames que tengas creados y escoges el que desees.

// Saludos
Responder Con Cita
  #5  
Antiguo 02-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos.

Roma, en el caso de que tu viera 2 o 3 frame, como (por medio de codigo) llamaria a una en especifico y destruiria o ocultaria a otra?

y por los visto todos los frame se autocrean aun que lo pongas en available form
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!

Última edición por vtdeleon fecha: 02-05-2005 a las 19:40:59.
Responder Con Cita
  #6  
Antiguo 02-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Los frames los puedes crear y mostrar como cualquier otro control:

Código Delphi [-]
var
  Frame: TFrame;

begin
  Frame := TMiFrame.Create(Self);
  Frame.Left := 16;
  Frame.Top := 32;
  Frame.Parent := Self;
end;

Lo destruyes con un simple

Frame.Free;

No sé de dónde concluyes que todos los frame se autocrean estando en Available Forms.

// Saludos
Responder Con Cita
  #7  
Antiguo 02-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cool

Saludos.
Cita:
Empezado por roman
No sé de dónde concluyes que todos los frame se autocrean estando en Available Forms.
Lo digo por el hecho de que al momento de leer este hilo, he creado un Form1 y tres Frames, cada uno de estos ultimos, con componentes diferentes. Entonces al momento de correrlos (RUN), estos aparecen desplegados en el formulario.

Como no he manejado este tipo de ventana (Frame), no se como hace que estos no aparezcan hasta que un evente X se ejecute. Intente ponerlo sen Available Form, pero para mi sorpresa ya estba ahi. Lo unico que se me ocurre es ocultarlos(mala idea, ya que se quedan en memoria) o destruirlos y despues crearlo uno a uno, dependiendo del caso.

El proposito de usar esto tipos de ventanas en para un pantalla de configuracion, parecido al que tiene el mensajer MSN Messnger.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #8  
Antiguo 03-05-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Piensa en un frame no como en un tipo de formulario- que no lo es- sino como un contenedor de controles. En cierta forma se asemeja más a un panel y como cualquier otro control, si lo insertas en el formulario aparecerá desde el comienzo. La ventaja del frame- a diferencia de un panel -es que durante el diseño de la aplicación puedes manejar el grupo de controles en una ventana aparte haciendo más cómoda la programación.

// Saludos
Responder Con Cita
  #9  
Antiguo 03-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Talking

Saludos.

Gracias Roman, ya lo tengo claro
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #10  
Antiguo 08-05-2005
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Cita:
Empezado por roman
Piensa en un frame no como en un tipo de formulario- que no lo es- sino como un contenedor de controles. En cierta forma se asemeja más a un panel y como cualquier otro control, si lo insertas en el formulario aparecerá desde el comienzo. La ventaja del frame- a diferencia de un panel -es que durante el diseño de la aplicación puedes manejar el grupo de controles en una ventana aparte haciendo más cómoda la programación.

// Saludos
Y su reutilización, sin ella yo no aconsejaría ir creando frames.

Cita:
Empezado por vtdeleon
El proposito de usar esto tipos de ventanas en para un pantalla de configuracion, parecido al que tiene el mensajer MSN Messnger.
En este caso te recomiendo que utlices el TPageControl con TTabSheet puedes crear varias pestañas y ocultarlas. Así consigues el mismo efecto, pero no tienes TFrames por ahí que no vas a reutilizar.
Responder Con Cita
  #11  
Antiguo 09-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Talking

Saludos.
Cita:
Empezado por DarKraZY
...En este caso te recomiendo que utlices el TPageControl con TTabSheet puedes crear varias pestañas y ocultarlas. Así consigues el mismo efecto, pero no tienes TFrames por ahí que no vas a reutilizar.
Creo que utilizando Pagecontrol cargaria mas la memoria, ya que los componenes que contiene cada Tab o pestaña estaria cargada, asi cargando la memoria.
Con unos Tframes podria destruir cualquiera y liberar memoria y llamarla cuando quiera.

No tengo mucha experiencia, pero creo que es asi.

Hasta luego
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #12  
Antiguo 09-05-2005
Avatar de DarKraZY
DarKraZY DarKraZY is offline
Miembro
 
Registrado: ago 2003
Posts: 460
Poder: 21
DarKraZY Va por buen camino
Cita:
Empezado por vtdeleon
Creo que utilizando Pagecontrol cargaria mas la memoria, ya que los componenes que contiene cada Tab o pestaña estaria cargada, asi cargando la memoria.
Con unos Tframes podria destruir cualquiera y liberar memoria y llamarla cuando quiera.
¿Tántos son los componentes que necesitas tener en un mismo formulario?
Responder Con Cita
  #13  
Antiguo 09-05-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Saludos.
Cita:
Empezado por DarKraZY
¿Tántos son los componentes que necesitas tener en un mismo formulario?
Bueno, No todos estaran en un formulario. El asunto es que cada Tframe tendra una cierta cantidad de componentes (edits, botones, labels,...), y tener un pagecontrrol con varias pesta~as activas, cada uno con sus componente, a mi juicio cargarian mucho. Lo contrario que Tframe, que llamaria a cada frame dependiendo de la situacion .
Pero bueno, eso es asunto de criterio, estilo y objetivo de cada uno.
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 15:20:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi