FTP | CCD | Buscar | Trucos | Trabajo | Foros |
#1
|
||||
|
||||
Aplicación MDI
Hola, mas que problema es una duda que tengo, y como no supe en que sección colocarla la pongo aquí, Estoy trabajando con una Aplicación MDI, esta aplicación utiliza varias ventanas MDIChild, (Hasta el momento ya son 20), pero exiesten varias que en apariencia son similares, los mismos controles y componentes, lo que cambia en si, son los filtros aplicados a las consultas, lo que he estado haciendo , es crear un Procedimiento diferente para cada una de las ventanas MDIChild que necesito, y como lo dije al principio ya son 20, esto como que no se me hace muy ortodoxo que digamos, pero el programa funciona, mi duda es que si existe algún modo o metodo para utilizar una sola ventan o form a modo de plantilla y modificar los datos que se utilizan para ejecutar los filtros en tiempo de ejecucion?
Algo asi: Código:
procedure CreateMDIChild (const Name: string); Procedure TPrincipal.CreateMDIChild(const Name: string); var Child: TAreas; begin Child:= TAreas.Create(Application); Child.Caption:=Name; end; procedure TPrincipal.Button1Click(Sender: TObject); begin CreateMDIChild('Datos Por Area'); end; procedure TPrincipal.Button2Click(Sender: TObject); begin CreateMDIChild('Datos Por Clase'); /Sería la misma MDIChild, pero los parametros para los filtros serían distintos. end;
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
#2
|
|||
|
|||
Puedes redefinir el Create de la ventana hija para pasarle, por ejemplo, el filtro y así usar una sola ventana (almenos si te he entendido bien)
Código:
.... public constructor Create(Sender: TObject; str: string); reintroduce; .... implementation constructor Create(Sender: TObject; str: string); begin inherited Create(Sender); caption := str; end; |
#3
|
||||
|
||||
No entendí... sorry
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
#4
|
|||
|
|||
Hola James
Bueno, yo me refería a que redefinieras el constructor del formulario MDIChild Es decir, esas linias de código has de ponerlas en el formulario Child, no se si me explico |
#5
|
||||
|
||||
Te recomiendo investigar sobre herencia visual, un mecanismo que permite diseñar un formulario "padre" que contenga los controles comunes a otros formularios... los que solamente especializarán el primero.
Aun en tu caso, si lo único que cambia es un filtro... incluso podrias tener un solo formulario en tiempo de diseño, crear multiples instancias de este en ejecución y asignar dinámicamente el filtro. Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#6
|
||||
|
||||
Uy vaya que si está medio complicado el asunto, pero investigaré a ver hasta donde llego.
Muchas gracias a todos
__________________
http://www.imgsharing.com/uploads/1121174648007_A1.jpg |
|
|
|