Ver Mensaje Individual
  #1  
Antiguo 08-03-2016
Adrian Martinez Adrian Martinez is offline
Registrado
NULL
 
Registrado: mar 2016
Posts: 6
Reputación: 0
Adrian Martinez Va por buen camino
Question Menu Principal

Hola a todos! desde ya quiero darles las gracias por su ayuda
Bien aqui la cuestion, tengo un formulario principal en el cual se ejecutan formularios Hijos, este formulario principal tiene una barra de botones, donde al ejecutarse el formulario hijo, se le asignan las tareas (nuevo, guardar eliminar, modificar, etc) los botones tienen asignados en la propiedad action la respectiva funcion, que estoy administrando con el Action Manager. Para que esta barra de Botones responda a un formulario en particular, cada vez que se activa o desactiva un formulario, cambio el datasource en el ActionManager para que cumpla dicha funcion. Se Realiza con el Siguiente Procedimiento:

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 := Nil;
            end;
        end;
    end;
end;

a este procedimiento lo llamo desde los formularios Hijos, en los OnActivate (SetiarBarra(DataSet, True)) y OnDesactivate(SetiarBarra(nil, False)).

Al crear el primer formulario asigna las tareas sin problema, el inconveniente se presenta cuando abro otro formulario, ya que nunca vuelve a reasignar el Datasource por lo tanto siempre los botones responden a la accion del primer formulario ejecutado, como no hay ningun error, no se que mas hacer Espero haber sido lo suficientemente claro, gracias nuevamente y saludos!

Última edición por roman fecha: 08-03-2016 a las 19:44:28. Razón: Agregar etiqueta [delphi]
Responder Con Cita