Ver Mensaje Individual
  #3  
Antiguo 16-11-2012
Nicolas_2011 Nicolas_2011 is offline
Miembro
NULL
 
Registrado: sep 2011
Posts: 59
Reputación: 13
Nicolas_2011 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola Nicolas.

No se bién el escenario en que se presenta, es decir, desde donde son abiertos los forms, si los forms compras y ventas dependen de caja, si ambos estarán abiertos, si...

Form Caja:
Código Delphi [-]
...
implementation

uses UnitCpra, // frmCompra
     UnitVta; // frmVenta

procedure FormsOnOff(F1,F2: TForm; Active: Boolean);
begin
  if Assigned(F1) then F1.Enabled:= Active;
  if Assigned(F2) then F2.Enabled:= Active;
end;

procedure TfrmCaja.FormCreate(Sender: TObject);
begin
  FormsOnOff(frmCompra, frmVenta, False);
end;

...

procedure TfrmCaja.btnAperturaCajaClick(Sender: TObject);
begin
   FormsOnOff(frmCompra, frmVenta, True);
end;

procedure TfrmCaja.btnCierreCajaClick(Sender: TObject);
begin
  FormsOnOff(frmCompra, frmVenta, False);
end;

procedure TfrmCaja.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if Assigned(frmCompra) and Assigned(frmVenta) then
    CanClose := frmCompra.Enabled and frmVenta.Enabled
  else if Assigned(frmCompra) and not Assigned(frmVenta) then
    CanClose := frmcompra.Enabled
  else if not Assigned(frmCompra) and not Assigned(frmVenta) then
    CanClose := frmVenta.Enabled;
end;
Para lo cuál frmCaja debe incluir las unidades de los forms compra y venta.

El motivo de tanta comprobación es por que desconozco si están creados ambos o puede estar creado solo uno de ellos. La razón del evento OnCloseQuery, es que no sé si podrías volver a llamar a frmCaja para habilitar los anteriores, lo que los dejaría desactivados. Si frmCaja se puede llamar desde otro punto se podría quitar.

Fijate si de este modo te resulta, si no nos comentás con más detalle.

Saludos.
Hola!, efectivamente tienes razon tendria q haber aclarado eso tambien los 3 formularios se abren desde un form PRINCIPAL y solo puede estar abierto uno a la vez.. funcionara lo q me propusiste de tal forma?
Responder Con Cita