FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
¿Componente a partir de Diseño GUI?
Buenas tardes, he buscado en varios foros y googleando y no encuentro un ejemplo que responda a mi inquietud, tal vez he usado las palabras claves inadecuadas pero la verdad es que siempre prefiero buscar la respuesta antes que preguntar, para no hacer perder tiempo a nadie si es que la respuesta es obvia y está en varios sitios.
El tema es el siguiente, hace tiempo que codifico en Delphi, he creado muchisimos componentes visuales y no visuales, y no he tenido problemas hastsa ahora. Cuando son visuales, el diseño lo suelo hacer en algún formulario y luego tomo referencia de los componentes que componente a mi "futuro componente", tomo referencia de las coordenadas X e Y relativas, y codifico lo mismo. El resultado es idéntico, pero debo escribir a mano la creación de cada TLabel, TEdit, TSpinEdit y la lista sigue de componentes que forman parte de mi componente; luego debo indicar el parten,el left, el top, y todas todas las propiedades de cada uno de los componentes que no son las por defecto al crear el mismo. En la actualidad me encuentro frente al desafío de crear un componente bastante complejo el cual segun el análisis deberá ser un Tpanel ya que podrá haber varios dentro de un formulario; ahora bien quisiera ahorrarme tener que diseñarlo gráficamente para luego copiar todas las propiedades y codificarlas a mano. He aquí la pregunta ¿Hay alguna práctica o truco para diseñar gráficamente un componente y luego poder acceder al código y coordenadas de sus partes componentes? El elemento que debo diseñar es la copia de un formulario que ya tengo pero que contiene numerosos tabs (pero ahora deberá ser un Tpanel), posee algo asi como 1000 componentes que reflejan la complejidad del objeto y realmente me quisiera evitar tener que codificar a mano semejante cantidad de código para crear el mismo. Lo que suelo hacer es hacer alt+f12 para acceder directamente al codigo de creación del formulario pero no me sirve para lo que quiero hacer ahora ya que no escapo de tener que copiar y pegar cada propiedad y demases. Espero se haya entendido mi inquietud, desde ya muchas gracias. Saludos |
#2
|
||||
|
||||
Has probado con frames ?
Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#3
|
||||
|
||||
No lo entiendo. Algo se me escapa.
Si es "la copia de otro form", ¿por qué no copias el archivo .dfm y pas? Sea de la manera que sea, yo entraría por parsear el código delphi y dfm (cargarlos en TStringLists) y a partir de ahí, generar el código fuente del Form resultado. ejem... a ver si me explico: y después harías el .dfm también. Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
|||
|
|||
Gracias por tu respuesta, no no he probado porque justamente pensaba en un Tpanel y no en una ventana dentro de otra, no tengo experiencia en frames, pero echaré un vistazo a ver si se adapta a mis necesidades.
Cita:
Por eso es que digo que hoy por hoy es un form, pero me parece quedaría mejor siendo un Tpanel (lo puedo inhabilitar, hacer invisible, mover, etc). No tengo experiencia en frames como me mencionó fjcg pero por ahí se resuelve por ese lado con algun form sin bordes ni nada. Lo que propones suena razonable aunque quería ver si había alguna forma más directa y automática Cita:
Gracias a todos por su ayuda, ahora me pondré a ver el tema más en detalle y a hacer algunas pruebas, cuando lo pueda resolver, volveré comentando cómo lo hice porque seguro a alguno le servirá como camino a seguir o como camino a no seguir |
#5
|
||||
|
||||
Tema formularios:
Se me ocurre que puedes generar el formulario 'al vuelo'. Además, puedes ponerle el parent que quieras, y de esa manera puede quedar 'incrustado' dentro de otro formulario. Para generar el formulario 'al vuelo' InstanciaFormulario1:= Application.CreateForm(TFormBusqueda, FormBusqueda); InstanciaFormulario2:= Application.CreateForm(TFormBusqueda, FormBusqueda); Previamente tienes que definir las variables var InstanciaFormulario1, InstanciaFormulario2: TFormBusqueda; Luego les asignas el parent ( aunque en este caso no tengo total seguridad de que la llamada sea así ) Tema Frames: Los frames los puedes crear 'al vuelo', tantos como quieras. Un frame puede constar de un TPanel y los controles que quieras dentro de él, así como el código asociado a los mismos. Espero haberte ayudado. Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - |
#6
|
||||
|
||||
Te paso un cutreejemplo de frames con un TPanel. Espero que te sirva.
Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino - Última edición por fjcg02 fecha: 11-02-2012 a las 15:32:32. |
#7
|
||||
|
||||
Lo que yo te recomiendo para tu caso es que utilices formularios empotrados. O en su defecto TFrames a cómo te lo han dicho. Creo que es lo mejor que puedes hacer. Son como un componente, pero tienes la posibilidad de hacerle cambios visualmente.
Saludos, Chris |
#8
|
||||
|
||||
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Cambiar nombre de componente al insertar en Diseño | agustibaldo | OOP | 4 | 06-04-2010 17:49:02 |
Delphi no encuentra el componente de diseño (BPL) | ContraVeneno | Varios | 7 | 01-10-2008 21:58:02 |
Componente que hay que activar en ejecucion, aunque se ve en fase diseño? | José Luis Garcí | OOP | 21 | 14-09-2007 21:41:27 |
crear componente a partir del archivo PAS | edusus | Varios | 2 | 02-04-2006 23:25:33 |
Componente para agilizar diseño de interfaces | Mauro.NET | OOP | 0 | 04-08-2005 01:28:45 |
|