Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Paneles en Orden ...... (https://www.clubdelphi.com/foros/showthread.php?t=68376)

Efren2006 10-06-2010 03:09:54

Paneles en Orden ......
 
Saludos


Mi problema es el siguiente ... Tengo en un Tform Varios Paneles ,,, y otros componentes ,, dependiendo de lo que el usuario seleccione necesito colocar Visible o no algunos Paneles,,, todo va bien,, como el Tform debe Tener un tamaño Fijo... coloque los Panel con Align = alTop .. y como ya explique funciona bien... el problema es que en algunos Casos los Paneles no estan en el Orden que necesito... es decir Ejemplo:

Tengo :
Tpanel1
Tpanel2
Tpanel3
Tpanel4
Tpanel5

Si el usuario Selecciona de un Tcombo
El valor =1 Desaparecen los Paneles 2 y 4 y Aparecen 1,3,5
El valor =2 Desaparecen los Paneles 3 y 5 y Aparecen 1,2,4
El valor =3 Desaparecen los Paneles 1,2,3 y Aperence 4,5

El Problema que tengo es que en algunos Casos no aparencen en ORDEN .. osea en ves de aparecer en caso del valor =1 ---> 1,3,5 aparecen 3,1,5 .... existe alguna propiedad que me permita colocar en pantalla los Panel en el orden que los necesito ... ???

Espero haberme explicado.-..

Caral 10-06-2010 03:52:42

Hola
La famosa propiedad TAG, que esta ahi, nadie sabe para que sirve, no se usa, no la ven, ni nada de nada.
Pero esta ahi, es un integer y es un comodin para lo que se quiera.
Saludos

movorack 10-06-2010 05:02:13

no es mejor utilizar un PageControl???

coso 10-06-2010 12:33:28

Hola,
quiza los metodos .bringtofront y .sendtoback te sirvan para ordenarlos. Un saludo.

cloayza 10-06-2010 16:23:34

Puedes utilizar la propiedad TabOrder de cada componente visual para asignar el orden...

Saludos...

maeyanes 10-06-2010 16:40:25

Hola...

Trata de hacer que se pongan visibles en el orden que deben estar, esto es, siempre pon primero visible el 1, luego el 2, etc...

Código Delphi [-]
procedure Form1.ShowPanels(Pnl1, Pnl2, Pnl3, Pnl4, Pnl5: Boolean);
begin
  Panel1.Visible := Pnl1;
  Panel2.Visible := Pnl2;
  Panel3.Visible := Pnl3;
  Panel4.Visible := Pnl4;
  Panel5.Visible := Pnl5
end;

// Uso:

ShowPanels(True, False, True, False, True); // Muestra panels 1, 3 y 5


Saludos...

ContraVeneno 10-06-2010 18:13:23

Cita:

Empezado por movorack (Mensaje 366828)
no es mejor utilizar un PageControl???

esto es correcto, sería mucho más sencillo utilizar un PageControl.

maeyanes 10-06-2010 18:31:44

Hola...

El TPageControl solo sería necesario si necesitase que un solo panel esté visible a la vez, pero (al menos yo) entiendo que el necesita tener más de un panel visibles al mismo tiempo, uno abajo del otro...

Código:

+---------+
| Panel 1 |
+---------+
| Panel 2 |
+---------+
| Panel 3 |
+---------+


Saludos...

Efren2006 11-06-2010 02:58:51

Cita:

Empezado por maeyanes (Mensaje 366882)
Hola...

El TPageControl solo sería necesario si necesitase que un solo panel esté visible a la vez, pero (al menos yo) entiendo que el necesita tener más de un panel visibles al mismo tiempo, uno abajo del otro...

Código:

+---------+
| Panel 1 |
+---------+
| Panel 2 |
+---------+
| Panel 3 |
+---------+

Saludos...

Amigo [maeyanes] es como lo dices,, necesito mas de uno , dependiendo de las opciones...

Probare con la propiedad TabOrder a ver como me va ..

Gracias a Todos por sus susgerencias ..

Neftali [Germán.Estévez] 11-06-2010 12:36:02

A mi me ha pasado algunas veces, sobre todo cuando se crean paneles en ejecución o cualdo se visualizan o se ocultan, como te pasa a tí.

La única solución que he encontrado es reposicionar los paneles después de hacer las operaciones de creación o de visualización.

Es decir, si los paneles tienen de alto 100 pixels, pues realizar un bucle que los recoloque en el orden correcto. Algo así

Código Delphi [-]
for i := 0 to 10 ...
   Panel[i].Top := (PANEL_HEIGHT * i);
   ...
end;


La franja horaria es GMT +2. Ahora son las 21:36:11.

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