Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cerrar MDIChild desde otro MDIChild (https://www.clubdelphi.com/foros/showthread.php?t=77022)

Lenny 14-12-2011 18:55:28

Cerrar MDIChild desde otro MDIChild
 
Estimados, nuevamente acudo a ustedes con una tonteria, les explico:

Tengo un MDIChild, el cual al cumplir ciertos criterios abre otro MDIChild, hasta ak todo ok, pero necesito, que cuando el segundo MDIChild cumpla su condicion se cierren ambos, el segundo con un Close cierra bien, pero el primero siempre lanza error de ecepcion , me explico bien???

De antemano muchisimas gracias, estare atento ante cualquier comentario o dua al respecto...

PD: Utilizo Delphi 2010, MySQL, ZEOS, JVCL...

ecfisa 14-12-2011 19:51:38

Hola Lenny.

Una forma puede ser:

MDIForm:
Código Delphi [-]
...
type
  TfrMDIForm = class(TForm) 
  ...
  public
    CloseChild(AName: string);
  end;
....
implementation

uses Unit2, Unit3; // Units de frMDIChild1 y frMDIChild2

procedure TfrMDIForm.CloseChild(AName: string);
var
  i: Integer;
begin
  for i:= MDIChildCount-1 downto 0 do
    if MDIChildren[i].Name = AName then
      MDIChildren[i].Close;
end;
...

MDIChild:
Código Delphi [-]
...
implementation

uses Unit1;// unit de TfrMDIForm

...
procedure TfrMDIChild2.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  frMDIForm.CloseChild('frMDIChild1'); // Nombre del Child a cerrar
  Action:= caFree;
end;

Saludos.

Lenny 14-12-2011 21:06:34

Estimado, muchisimas gracias, encontre una solucion muchisimo mas canibal, pero de todoso modos echare un ojo a la solucion que me diste que no es primera ves que encesito ahcer algo asi y siempre reinvento la rueda...


Muchas gracias, esta noche le echo un ojo y lo implemento... Byes!!!

PD: Lo solucione colocando en el OnChange de un DBEdit del MDIChild1, que siempre esta en cero al abrir, pero al cerrar la MDIChild2 actualzia los registros y le asigna un valor, al cambiar, si el valor es el mismo guardado, Close;... bastante animal, pero simple y funciona...


La franja horaria es GMT +2. Ahora son las 19:56:30.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi