FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Problemas con StatusBar
Pues no se que pasa que he puesto un codigo para que algunos elementos del Form se redimensione dependiendo del tamaño del form y va todo bien pero si maximizo la ventana y luego la restauro pues desaparece la statusbar. Si redimensiono o maximizo todo va bien pero si doy a restaurar la ventana ya desaparece. Este es el codigo:
Código:
void __fastcall TForm1::FormResize(TObject *Sender) { //Aqui hacemos que CheckListBox se ajuste al tamaño del formulario CheckListBox->Height = Form1->Height - CheckListBox->Top - 40 - StatusBar1->Height; //Aqui hacemos que el tamaño del Image se ajuste al cambiar el tamaño de la ventana ScrollBox->Width = Form1->Width - ScrollBox->Left - 15; ScrollBox->Height = Form1->Height - ScrollBox->Top - 40 - StatusBar1->Height; } |
#2
|
||||
|
||||
¿Comentando ese trozo de código la StatusBar se comporta de distinta forma?
¿Cómo está anclada la StatusBar, si es que lo está? ¿Has probado a modificar el tamaño y la posición de la StatusBar en el FormResize? Son preguntas retóricas, aunque me interesaría la respuesta de la primera. Mira a ver si algo de lo que te digo te sirve para algo. Un saludo.
__________________
La Madurez se llama... ~~~Gaia~~~ |
#3
|
||||
|
||||
perdona pero no se que es retorica jejeje. Sobre lo que dices, si comento las dos lineas que modifican el alto de los dos componentes que modifico en el resize, ya funciona correctamente la syatusbar. Anclada no se, yo la añadi pulsando en ella y haciendo clic en el form y esta modifica su ancho al cambiar el ancho del form. Sobre cambiarlo de posicion no lo he probado pero es que yo lo quiero abajo. Sobre modificar la statusbar en resize, pues he probado a llamar a statusbar->show(), statusbar->refresh(), modificar el texto del panel y nada, no se soluciona.
|
#4
|
||||
|
||||
Una pregunta retórica es una pregunta que no busca respuesta, estas preguntas eran más que nada para que pensaras sobre las respuestas.
Bien, siguiente paso. La StatusBar, por defecto, se ancla (Anchors) a la parte inferior de la pantalla, a la parte izquierda y a la parte derecha (akLeft := True, akRigth := true, akBottom := true) por eso cuando el formulario cambia de tamaño esta también lo hace. Solamente se me ocurre que algún componente la esté tapando o que realmente no se comporte correctamente, cosa que se me hace rara cuanto menos. Yo probaría a ver los valores Left, Top, Width y Heigth del StatusBar en el FormResize, por si acaso. En cualquier caso, siempre podrás asignarles los que tú quieras, por ejemplo:
X = Resto longitud Form. El tamaño del formulario siempre es un poquito más grande de lo que necesita un componente para ir de punta a punta, esta variable debería de valer el sobrante de la longitud. Y = Altura que se desee para el StatusBar. Esta no debe de hacer falta, no creo que la altura que se ponga en tiempo de diseño cambie. Z = Resto altura Form. Lo mismo que la X pero con la altura. Por último, una burrada. Mira a ver que no haya ninguna parte del código que esté poniendo la propiedad visible a false. Saludos
__________________
La Madurez se llama... ~~~Gaia~~~ |
#5
|
||||
|
||||
Pues he estado mirando las indicaciones que me diste y para ello he colocado un Edit y en el muestro el Top, Height, Left, y Width y hay algo muy raro. Cuando maximizo y luego restauro se restaura a su tamaño original pero mira los resultados:
Al iniciar: Left: 0 Width: 617 Top: 381 Height: 19 Al maximizar: Left: 0 Width: 1265 Top: 521 Height: 19 Al restaurar: Left: 0 Width: 1258 Top: 515 Height: 19 El Width y el Top cambian y por eso no se ve, porque queda debajo de otros componentes. ¿por que se descompensan al restaurar? El Anchor tengo Top = false, Width = true, Height = true, Botton = true. Si cambio el Top a true no hace lo que me gustaria ya que me hace la barra mas ancha al maximizar. He probado a anclar la barra en la parte superior y ahi no falla. ¿como puedo solucionar esto? |
#6
|
||||
|
||||
Lo he solucionado poniendo Align = alNone, todos los Anchors en false y luego esto:
Código:
void __fastcall TForm1::FormResize(TObject *Sender) { //Aqui hacemos que CheckListBox se ajuste al tamaño del formulario CheckListBox->Height = Form1->Height - CheckListBox->Top - 40 - StatusBar1->Height; //Aqui hacemos que el tamaño del Image se ajuste al cambiar el tamaño de la ventana ScrollBox->Width = Form1->Width - ScrollBox->Left - 15; ScrollBox->Height = Form1->Height - ScrollBox->Top - 40 - StatusBar1->Height; StatusBar1->Left = CheckListBox->Left; StatusBar1->Top = Form1->Height - StatusBar1->Height - 35; StatusBar1->Width = Form1->Width - StatusBar1->Left - 15; } |
#7
|
||||
|
||||
Hola aguml.
Me gustaría poder ver un esquema (o imágen) de como están situados los componentes en el form y como desearías que se redimensionen. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#8
|
||||
|
||||
#9
|
||||
|
||||
Hola.
Te adjunto una muestra de lo que considero la forma mas sencilla de realizarlo. Las alineaciones las hago en tiempo de ejecución para que sea mas claro, pero se pueden hacer en tiempo de diseño sin problemas. Si no te sirviera de este modo, ya veremos si le podemos buscar la vuelta por otro lado... Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 05-06-2013 a las 17:15:55. |
#10
|
||||
|
||||
Asi va de maravilla pero tiene un pero y que para mi es muy molesto, los bordes de los paneles que no se pueden quitar. O sea, entre panel y panel hay una linea que se ve feo. Ademas, el CheckBoxList al alinearlo al cliente se pega al lado derecho y no deja despegarlo un poco del lado derecho y del lado izquierdo.
|
#11
|
||||
|
||||
Lo he conseguido, ha quedado fenomenal asi, y si que he podido trabajarme los bordes para separar de los lados y que no se vean los bordes de los paneles toqueteando en las propiedades de los paneles jejeje. Muchas gracias. Y sin tener que hacer calculos como yo hacia en tiempo de ejecucion. ¡Genial!
|
#12
|
||||
|
||||
Hola aguml.
Revisá si con estas modificaciones te sirve. Saludos. Edito: No había visto tu mensaje, me alegro que lo solucionaras. De todos modos, tal vez te pueda interesar revisar el uso de un TSplitter para redimensionar la imágen verticalmente)
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 09-06-2013 a las 00:08:42. |
#13
|
||||
|
||||
Gracias amigo, sobre el tSplite se como usarlo y en este caso no me interesa que puedan modificar nada jejeje.
|
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Statusbar | gianfranco_tont | OOP | 8 | 12-02-2012 18:33:20 |
Problemas con un statusbar | José Luis Garcí | Varios | 3 | 22-11-2009 10:46:55 |
Click en statusbar | Novás | Varios | 8 | 29-05-2008 23:39:10 |
Problemas con un Panel del StatusBar - psOwnerDrw | sitrico | Varios | 1 | 05-09-2007 23:20:26 |
XPManifest y Statusbar | arj2000 | Varios | 1 | 29-07-2005 01:25:57 |
|