PDA

Ver la Versión Completa : Aplicación MDI


JamesBond_Mx
27-04-2004, 21:12:57
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:


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;


Es posible???

__cadetill
27-04-2004, 21:19:14
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)


....
public
constructor Create(Sender: TObject; str: string); reintroduce;
....

implementation

constructor Create(Sender: TObject; str: string);
begin
inherited Create(Sender);

caption := str;
end;


Espero te sirva

JamesBond_Mx
27-04-2004, 21:35:17
No entendí... sorry

__cadetill
27-04-2004, 23:37:11
Hola James :p

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 :(

jachguate
28-04-2004, 00:02:50
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.

;)

JamesBond_Mx
28-04-2004, 00:36:53
Uy vaya que si está medio complicado el asunto, pero investigaré a ver hasta donde llego.

Muchas gracias a todos