PDA

Ver la Versión Completa : Evento MDIform despues de cerrar un formulario MDChild


ing_alsaac
02-06-2003, 07:53:48
:confused:
Hola a todos:
El problema que tengo es el siguiente,
tengo un formulario MDI y quiero obtener un valor que venga
de un formulario MDIChild y lo ponga dentro de una variable
del formulario MDI, el problema esta en que no puedo referenciar
la unidad principal dentro del MDIChild porque marca error de redundancia, y se me ocurrio utilizar algun evento del formulario MDI hacer la asignacion pero lo mas cercano a lo que necesito es el OnPaint pero solo se activa cuando minimizo la pantalla lo cual resulta poco practico.
Hay alguna manera de regresar valores de una MDIChild a una MDI?
hay algun procedimiento que nos indique que se ha cerrado la forma MDIchild dentro del MDI para hacer la asignacion? algo asi como OncloseChild?
Ojala me hayan entendido y puedan ayudarme.
De antemano Gracias

__cadetill
02-06-2003, 09:59:36
Hola ing_alsaac

Bueno, lo que yo hago cuando necesito hacer cosas por el estilo es, crearme una unit donde pongo un procedimiento o funcion segun necesite, declaro una variable global y hago referencia a esa variable desde el MDI y MDIChild mediante ese procedimiento o funcion.

Si por ejemplo, lo que necesitas es cambiar la propiedad o el estado de un componente del MDIForm (como por ejemplo la barra de estado), siempre puedes pasar por parametro el objeto al procedimiento o funcion anterior, o bien directamente al formulario MDIChild y modificar sus propiedades (que se veran reflejadas en el MDIForm) desde donde tu desees

Espero te sirva

roman
02-06-2003, 16:27:30
Posteado originalmente por ing_alsaac
...no puedo referenciar la unidad principal dentro del MDIChild porque marca error de redundancia...
Me parece que estás poniendo la referencia en la sección interface. Prueba ponerla en la sección implementation y no tendrás problemas.

// Saludos

Lepe
02-06-2003, 17:35:20
que traduciendo lo que dice roman resulta.....


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation
Uses child;
{$R *.dfm}

end.

en el FRMMDI pones el uses child y en la ventana hija, en el mismo sitio, pones "Uses Mdi"


al cerrar la ventana hija....

procedure TForm2.ChildClose(Sender: TObject; var Action: TCloseAction);
begin
frmmdi.mivariable:= mi valor;
action := cafree;
end;