Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
Question ¿Como hacer invisible y que no ocupe lugar un componente?

Hola, Tengo un formulario en el que un TComboBox aparece dependiendo de lo que haya seleccionado con anterioridad el usuario, la cuestión es que cuando esta no visible queda un espacio y no me gusta mucho, quería saber si hay alguna forma de que no ocupe lugar el componente cuando no esta visible. Busque en los tutoriales pero no eh visto ningún ejemplo... sera posible?

Saludos y gracias.
Responder Con Cita
  #2  
Antiguo 14-11-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Jere_84, solo con el componente no, lo que puedes hacer es colocar en un panel sin borde ( BevelInner->bvNone, BevelOuter->bvNone, BorderStyle->BsNone ) tus componentes que están debajo de tu combobox y mover dicho panel arriba (Visible->False) o abajo (Visible->True) para que no se vea el espacio, para esto puedes utilizar la propiedad Top de dicho panel.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #3  
Antiguo 14-11-2012
Avatar de TiammatMX
TiammatMX TiammatMX is offline
Miembro
 
Registrado: jun 2006
Ubicación: Universo Curvo\Vía Láctea\Sistema Solar\Planeta Tierra\América\México\Puebla\Heróica Puebla de Zaragoza\Jardines de San Manuel\Home
Posts: 746
Poder: 18
TiammatMX Va camino a la fama
Cita:
Empezado por Jere_84 Ver Mensaje
Hola, Tengo un formulario en el que un TComboBox aparece dependiendo de lo que haya seleccionado con anterioridad el usuario, la cuestión es que cuando esta no visible queda un espacio y no me gusta mucho, quería saber si hay alguna forma de que no ocupe lugar el componente cuando no esta visible. Busque en los tutoriales pero no eh visto ningún ejemplo... sera posible?

Saludos y gracias.
¡¡¡POR SUPUESTO QUE ES POSIBLE!!! En diseño de sistemas y programación TODO es posible, solamente que cuesta más...

A ver, te doy una idea...

Quiero suponer que tienes un TPanel o algo así, y como sabes, es un contenedor de componentes, ¿por qué no posicionas el TComboBox en el eje vertical que le corresponde, pero en un eje horizontal QUE SALGA DE LA VISTA. Así, cuando sea necesario hacerlo visible, lo posicionas en el eje horizontal y listo...

Ahora que lo más "elegante", natural y normal es tener el componente deshabilitado y visible, hasta que se cumple la condición que permite habilitar y utilizar el contenido del componente...
__________________
Felipe Eduardo Ortiz López. Delphi programmers does it recursively...

"Un programador, es un creador de universos en donde sólo él es responsable. Universos de complejidad prácticamente ilimitada que se puede crear en forma de programas de ordenador." - Joseph Weizenbaum.

Témele a los profetas... y a aquellos que están listos para morir por "la verdad", ya que como regla general hacen morir a muchos otros con ellos, frecuentemente antes que ellos, y a veces en lugar de ellos. — Umberto Eco
Responder Con Cita
  #4  
Antiguo 14-11-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Jere_84 Ver Mensaje
Hola, Tengo un formulario en el que un TComboBox aparece dependiendo de lo que haya seleccionado con anterioridad el usuario, la cuestión es que cuando esta no visible queda un espacio y no me gusta mucho, quería saber si hay alguna forma de que no ocupe lugar el componente cuando no esta visible. Busque en los tutoriales pero no eh visto ningún ejemplo... sera posible?
Lo que no me queda claro es qué deseas hacer con ese espacio.
¿Quieres que otros componentes ocupen ese lugar?
¿Quieres que el formulario se haga más pequeño?
...

Dependiendo de lo que necesites la táctica es una u otra.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 14-11-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por Neftali Ver Mensaje
Dependiendo de lo que necesites la táctica es una u otra.
Eso.
.
Responder Con Cita
  #6  
Antiguo 14-11-2012
Avatar de Jere_84
Jere_84 Jere_84 is offline
Miembro
NULL
 
Registrado: sep 2011
Ubicación: Córdoba, Argentina
Posts: 214
Poder: 0
Jere_84 cantidad desconocida en este momento
El formulario es modal y tengo un group box que contiene dos combos y debajo dos bitbtn. El combo inferior no siempre aparece, entonces queda un espacio medio grande del group box vacio cuando no esta visible hasta llegar el limite inferior del mismo y luego aparecen los botones. La idea seria que cuando no aparece el combo inferior el group box se encogiera un poco, los dos botones subieran y el formulario fuera mas pequeño, no se si este comportamiento es posible con propiedades o habría que hacer alguna maniobra por código

gracias por las respuestas.
Responder Con Cita
  #7  
Antiguo 14-11-2012
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Cita:
Empezado por Jere_84 Ver Mensaje
La idea seria que cuando no aparece el combo inferior el group box se encogiera un poco, los dos botones subieran y el formulario fuera mas pequeño, no se si este comportamiento es posible con propiedades o habría que hacer alguna maniobra por código
Si, tienes que hacerlo desde codigo, puedes utilizar la propiedad Height de tu Groupbox y tu formulario para disminuir la altura (Width para el ancho), la propiedad top para subir tus botones ...............

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #8  
Antiguo 14-11-2012
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
Jere_84,

Cita:
Empezado por Jere_84 Ver Mensaje
La idea seria que cuando no aparece el combo inferior el group box se encogiera un poco, los dos botones subieran y el formulario fuera mas pequeño, no se si este comportamiento es posible con propiedades o habría que hacer alguna maniobra por código
Revisa el ejemplo anexo en el cual se redimensiona Form2 y sus controles en función de la selección de ComboBox2 de Form2 en Form1 por medio de un CheckBox.

Espero sea útil

Nelson.
Archivos Adjuntos
Tipo de Archivo: rar RedimForm.rar (175,9 KB, 1 visitas)
Responder Con Cita
  #9  
Antiguo 15-11-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Jere_84 Ver Mensaje
El formulario es modal y tengo un group box que contiene dos combos y debajo dos bitbtn. El combo inferior no siempre aparece, entonces queda un espacio medio grande del group box vacio cuando no esta visible hasta llegar el limite inferior del mismo y luego aparecen los botones. La idea seria que cuando no aparece el combo inferior el group box se encogiera un poco, los dos botones subieran y el formulario fuera mas pequeño, no se si este comportamiento es posible con propiedades o habría que hacer alguna maniobra por código
Es posible que si juegas con paneles en el formulario y con la propiedad Autosize del formulario, puedas conseguir que se ajuste sin ni siquiera colocar una línea de código.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 15-11-2012
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
Cita:
Empezado por Neftali Ver Mensaje
Es posible que si juegas con paneles en el formulario y con la propiedad Autosize del formulario, puedas conseguir que se ajuste sin ni siquiera colocar una línea de código.
Yo ya jugué ese juego y perdí

Es que, además del autosize, hay que mover los componentes al nuevo "top" que queda vacío. Par eso podrían ser los anchors, pero eso funciona sólo respecto del formulario, no respecto de un panel, por ejemplo.

No sé porqué, pero me parece que en Delphi XE2 hay paneles para hacer layouts más dinámicos, ¿no es así?

// Saludos
Responder Con Cita
  #11  
Antiguo 15-11-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
He hecho una pequeña prueba y más o menos me referíá a esto. Subo el ejemplo al FTP (Redimensionar Formulario).

En mi caso con un código como este, que básicamente oculta el panel y cambia un par de alineaciones para que se "reajuste".

Código Delphi [-]
  if CheckBox1.Checked then begin
    Panel2.Align := alTop;
  end
  else begin
    Panel2.Align := alNone;
  end;
  // Cambiar el estado
  Self.AutoSize := False;
  Self.AutoSize := True;
  // 
  Panel2.Visible := CheckBox1.Checked;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 15-11-2012
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
¡Ah! Ya veo como le haces. Oye, pero ni siquiera necesitas ese código ¿no? Es decir, tu ejemplo me funciona si sólo pongo Panel2.Align en alTop y Self.AutoSize en true en diseño.

// Sludos
Responder Con Cita
  #13  
Antiguo 15-11-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Es posible, es posible.
Lo he generado rápido probando las propiedades, pero afinando un poco más es posible que como comentas se pueda "ahorrar" alguna línea más.

En este caso quería que al volver a pulsar el check, el formulario "volviera" otra vez a como estaba. Si es algo que sólo se desea hacer en el Show (hacerlo más pequeño) y no va a cambiar mientra ese form está visible, sobrarán lineas seguro.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #14  
Antiguo 15-11-2012
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
Cita:
Empezado por Neftali Ver Mensaje
Es posible, es posible.
Lo he generado rápido probando las propiedades, pero afinando un poco más es posible que como comentas se pueda "ahorrar" alguna línea más.

En este caso quería que al volver a pulsar el check, el formulario "volviera" otra vez a como estaba. Si es algo que sólo se desea hacer en el Show (hacerlo más pequeño) y no va a cambiar mientra ese form está visible, sobrarán lineas seguro.
Pues con tu ejemplo, si le quitas el código y pones las propiedades indicadas, hace eso, aparece y desaparece y el form se acorta y se alarga.

// Saludos
Responder Con Cita
  #15  
Antiguo 15-11-2012
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Correcto.
Pues entonces queda claro que se puede hacer. Si es que Delphi es mucho delphi... ;-)
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Cómo hacer que un componente se desvanezca broly7 Gráficos 0 01-04-2010 14:54:10
Como hacer un componente COM felipin007 Providers 0 11-11-2004 04:39:45
Como hacer invisible columna de Grid? txuseibar OOP 4 10-10-2003 19:04:15
Hacer invisible un grid al pulsar fuera apicito OOP 2 27-06-2003 13:38:53
¿Como saber cuabdo un componente esta invisible en tiempo de ejecuciòn? danytorres Varios 1 20-05-2003 15:51:21


La franja horaria es GMT +2. Ahora son las 23:47:20.


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