FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Varios Frames en un Formulario
Estimado, creo que este tema aplica no solo para Lazarus, pero ya que mi intención es una aplicación desarrollada en Lazarus para Linux (Raspbian) lo agrego aquí.
Tengo una formulario principal, con 2 TPanel, con la propiedad Align alTop y alClient respectivamente. Además otro TFrame, con algunos componentes previamente configurado (Tedit, TLabe, etc.) En tiempo de ejecución se realiza una consulta a una BD, y se creen tantos frames (previamente configurado) como registros devuelva la consulta, todos estos creados uno al lado del otro en el Panel del formulario principal. Todos los frames creados deben ser independientes, ya que cada edit y label se cargará con los datos del query. Como hago esto?? Saludos |
#2
|
||||
|
||||
Creas el frame y lo "empotras" en un contenedor
Tambien podrias poner por ej. AFrame.Parent := Panel1, AFrame.Parent := GroupBox1, etc. Siempre y cuando sea un contendedor |
#3
|
|||
|
|||
Eso me funciona perfecto, pero tengo problemas con la posición, ya que la cantidad depende de los registros, y con ese código quedan todos en la misma posición... uno sobre otro.
La idea es que se distribuyan automaticamente dentro del contenedor... en mi caso un TPanel. Estuve probando con Align := alleft, pero solo me quedan en una fila. Quizás una solución es crear Paneles en runtime, en base al ancho del panel contender y el ancho del frame, e ir asignado el parent según los frames que existan previamente creados... Es un poco engorroso... Alguna idea más sencilla?? Saludos. |
#4
|
||||
|
||||
Si obvio, algun tipo de Align tenes que usar, sino te quedan uno encima de otro
Que tipo de layout queres crear? Uno abajo de otro? Yo meteria un TScrollBox (asi se llamaba no?) y los iria metiendo todos los frames en ese scrollbox con Align = alTop Te deberia quedar asi: ---Frame 1--- /////////////// ////////////// --Fin Frame 1--- ---Frame --- /////////////// ////////////// --Fin Frame 2--- |
#5
|
|||
|
|||
Por el tamaño del Frame me quedaría perfecto en filas y columnas... es decir, puede que quepan 3 o 4 por fila, y quizás 5 o 6 filas, pero todo esto depende del tamaño-resolución donde se ejecute l aplicación.
Otra cosa, como puedo eliminar todos los Frame en runtime?? Saludos. |
#6
|
||||
|
||||
En ves de un panel usa un TGridPanel para crear un layout fila/columnas
Si, agregalos a una lista asi no perdes la referencia al Frame |
#7
|
|||
|
|||
No encontré ese componente en Lazarus 0.9
Estoy utilizando align en alTop, funciona, pero no es como quisiera... Tengo otro problema, resulta que no puedo borrar los frames creados... adjunto el código
Espero me puedan ayudar. Saludos |
#8
|
||||
|
||||
Varios puntos:
1. Por que preguntar si un objeto es tal clase utilizando strings? No es mejor hacer algo asi
2. No recorras los componentes del form, recorre los controles ya que los frames los creaste en tiempo de ejecucion 3. La sentencia de destruccion: a. No hace falta que castees a TFrame1 para llamar al metodo destroy b. No uses destroy explicitamente, usa Free siempre que es mas seguro c. No estas eliminando la referencia de la lista en cuestion. Lo mas correcto seria d. Ahora que recuerdo, al eliminar de la lista hay que recorrerla en sentido inverso
Con respecto a que el layout no es el esperado no puedo ayudarte mucho mas . Una pena que lazarus no tenga un componente tipo TGridPanel Última edición por AgustinOrtu fecha: 26-10-2015 a las 17:34:52. |
#9
|
|||
|
|||
Para ubicar los Frames en filas y columnas solo tienes que ajustar sus coordenadas:
donde "idx" es la cantidad de frames que estás insertando. Para este caso se crearán filas de 5 elementos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Edición de formulario con varios campos | vicens22 | Desarrollo en Delphi para Android | 0 | 19-12-2013 19:13:02 |
Ayuda relaciones de varios a varios TQueries | j_flores3000 | SQL | 7 | 22-11-2008 21:43:40 |
Un formulario principal y varios secundarios en una aplicación | noob | OOP | 6 | 25-09-2008 19:53:43 |
Linkar varios botones sobre un mismo formulario | mieltxo | HTML, Javascript y otros | 5 | 25-01-2008 21:59:40 |
Varios forms, frames y un Data Module | gluglu | Varios | 1 | 07-04-2005 19:28:51 |
|