Perdon por la falta de detalles! mira, este es el procedimiento que llamo desde el Onactivate y OnDesactivate de los MDIChild, para asignara el DataSource a la Lista de Acciones de mi ActionManager, que controla los botones en el Menu Principal, o sea el MDIForm.
Código Delphi
[-]Procedure SetiarBarra(MyDataSource:TDataSource; bCarga:Boolean);
var i:Integer;
begin
With FrmMain do
begin
if bCarga = True then
begin
for i := 0 to ActionManager.ActionCount -1 do
begin
if UpperCase(ActionManager.Actions[i].Category)=UpperCase('Dataset')then
TDataSetAction(ActionManager.Actions[i]).DataSource := MyDataSource;
end;
end
else
begin
for i := 0 to ActionManager.ActionCount -1 do
begin
TDataSetAction(ActionManager.Actions[i]).OnExecute := Nil;
if UpperCase(ActionManager.Actions[i].Category)=UpperCase('DataSet')then
TDataSetAction(ActionManager.Actions[i]).DataSource := MyDataSource;
end;
end;
end;
end;
Al procedimiento lo llamo asi:
Cuando activo el MDICHild (OnACtivate) = SetiarBarra(DSMain, True) //DSMain, es el nombre del DataSet.
Cuando Desactivo el MDICHild (OnDesactivate) = SetiarBarra(Nil, False) //DSMain, es el nombre del DataSet.
Entonces: Cuando activo un MDIChild, el MDIForm se enlaza a su DataSet, pero cuando se Desactiva ese MDIChild, nunca se desenlaza...
Espero haber aclarado algunas de tus dudas! Gracias por responder