Ver Mensaje Individual
  #8  
Antiguo 20-09-2007
Nasca Nasca is offline
Miembro
 
Registrado: abr 2007
Ubicación: Almería (España)
Posts: 249
Reputación: 18
Nasca Va por buen camino
Y que tal una búsqueda recursiva de los padres

Te mando un ejemplo que puedes adaptar:

Código Delphi [-]
var
  cpadre : TComponent;
begin
inherited;
//Localizamos los padres por si procede cargar factura en cobro
if Assigned(TComponent(Self).Owner) then
 begin
  cpadre := TComponent(Self).Owner;
  while not(cpadre is TfCobro) do
    begin
       cpadre := cpadre.Owner;
       if cpadre = nil then Break;
    end;
  if Assigned(cpadre) then
    begin
      cds_detalle_cobro := TClientDataSet(cpadre.FindComponent('cdsFacturas'));
      PageControl1.TabIndex := 3;
      Self.ActiveControl :=  btCobrar;
      btCobrar.Tag := 1;
      btCobrar.Font.Color := clRed;
      btCobrar.Caption := 'Cargar Factura';
    end;

Igualmente te vale si haces una búsqueda recursiva de los formularios abiertos.

Yo usé un método parecido al tuyo pasando variables pero es muy rígido y lioso. Este funciona mejor y mas flexible y potente. De paso soluciona el problema de ir pasando variables recursivamente. Si lanzas una ventana desde un formulario y esta a su vez otra, el sistema sigue funcionando.
Creo que métodos de trabajo como este son los que realmente hacen que las interfaces desktop sigan siendo mucho mas útiles que las webs.
Responder Con Cita