<div>Jose, la forma que vos decís es la única que funciona del todo bien :) Hay que utilizar los OnUpdate con el FHabilitado (en mi caso) y listo. Por ejemplo:<br></div><div><br></div><div>procedure TfmListado.acReporteUpdate(Sender: TObject);<br>
begin<br>  (Sender as TAction).Enabled := FHabilitado and (dsListado.DataSet.State = dsBrowse);<br>end;<br></div><div><br></div><div><br></div><div><br></div><div>Con esta forma que yo estaba usando, no logro que los TToolButtons se muestren deshabilitados</div>
<div><br></div><div>if FHabilitado then<br>   alListado.State := asNormal                          // alListado es un TctionList<br> else<br>   alListado.State := asSuspended;<br></div><div><br></div><div>, y al modificarlos así directamente </div>
<div><br> for i := 0 to tbListado.ControlCount - 1 do<br>   tbListado.Controls[i].Enabled := FHabilitado;              // tbListado es el toolbar que usa los TAction</div><div><br></div><div>luego no reflejan el verdadero estado del TAction hasta el nuevo OnUpdate.</div>
<div><br></div><div><br></div><div>Al final el método SetHabilitado de TFrame quedó así:</div><div><br></div><div><br></div><div>procedure TfmListado.SetHabilitado(AValue: Boolean);<br>var<br>   i: Integer;<br>begin<br>   if FHabilitado=AValue then Exit;<br>
   FHabilitado:=AValue;<br><br>   Enabled := FHabilitado;<br><br>   if FHabilitado then begin<br>         dgListado.TitleFont.Color := clDefault;<br>         dgListado.Font.Color:= clDefault<br>   end else begin<br>         dgListado.TitleFont.Color := clInactiveCaption;<br>
         dgListado.Font.Color:= clInactiveCaption;<br>   end;<br><br>    tbListado.Enabled := FHabilitado;<br>    dgListado.Enabled := FHabilitado;<br>    sgListado.Enabled := FHabilitado;<br>end;<br></div><div><br></div>
<div><br></div><div>Bueno, era bastante sencillo después de todo, solo hay que sabe que hacer en cada caso. Gracias.</div><div><br></div><div><br></div><br><div class="gmail_quote">2011/10/25 Gastón Dall' Oglio <span dir="ltr"><<a href="mailto:gaston.dalloglio@gmail.com">gaston.dalloglio@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Antonio<br><br><div class="gmail_quote"><div class="im">2011/10/25 Jose Antonio Cuello Principal <span dir="ltr"><<a href="mailto:jcuello@artextrading.com" target="_blank">jcuello@artextrading.com</a>></span><br>
</div><div class="im"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

  
    
  
  <div bgcolor="#FFFFFF" text="#000000">
    Pues solo tienes que cambiar el estado del boton no del tactionlist.
    En evento OnUpdate (que puede ser el mismo para todos los TActions)<br></div></blockquote><div><br></div></div><div>Tengo entendido que deshabilitando el TActionList deshabilito todas las acciones, evitando así que se continúen chequeando innecesariamente los OnUpdate de cada accción.</div>
<div class="im">
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    (Sender as TAction).Enabled := FEnabled;<br></div></blockquote><div><br></div></div><div>En un principio usaba esta forma y funciona, pero me decidí por deshabilitar el TActionList porque es mas centralizada, tengo un TActionList por cada frame ¿Hay algún problema con deshabilitar este control con asSuspended? Tampoco se la diferencia entre asSuspended y asSuspendedEnabled.</div>

<div><br></div><div>Saludos.</div><div><div class="h5"><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    Un saludo<br>
    <br>
    El 25/10/11 13:42, Gastón Dall' Oglio escribió:
    <div><div><blockquote type="cite">
      <div>Hola Jose.<br>
      </div>
      <div><br>
      </div>
      <div>Todos los botones del toolbar utilizan un TAction. Cuando
        quiero deshabilitar todos los TAction deshabilito el TActionList
        así:</div>
      <div><br>
      </div>
      <div>if FHabilitado then<br>
            alListado.State := asNormal // alListado es un TActionList<br>
        else<br>
            alListado.State := asSuspended;</div>
      <div><br>
      </div>
      <div>Eso funciona, el problema es el aspecto de los  botones.</div>
      <div><br>
      </div>
      <div>Saludos!</div>
      <br>
      <div class="gmail_quote">2011/10/25 Jose Antonio Cuello Principal
        <span dir="ltr"><<a href="mailto:jcuello@artextrading.com" target="_blank">jcuello@artextrading.com</a>></span><br>
        <blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
          <div bgcolor="#FFFFFF" text="#000000"> Por qué no usas
            TActions. Simplemente le indicas a todos los TActions en el
            evento OnUpdate que se pongan Enabled según el Enabled del
            parent.<br>
            <br>
            Un saludo.<br>
            <br>
            <br>
            El 24/10/11 19:31, Gastón Dall' Oglio escribió:
            <blockquote type="cite">
              <div>
                <div>
                  <div>Hola gente.<br>
                  </div>
                  <div><br>
                  </div>
                  <div>Les quería consultar por si algunos me puede dar
                    una idea de que hacer, o si me estoy olvidando algo
                    en el apuro.</div>
                  <div><br>
                  </div>
                  <div>El tema es que tengo dos frames en un form, y en
                    algún momento necesito "bloquear" el primero ya que
                    contiene varios controles de datos de diferentes
                    datasets, toolbars con acciones, etc., y no quiero
                    que el usuario los pueda utilizar. Para esto lo que
                    hago es deshabilitar el frame y por consiguiente
                    todos sus controles son deshabilitados. El problema
                    es que para el usuario estos controles siguen
                    mostrándose cono si él los pudiera usar. Entonces,
                    la pregunta es ¿como puedo hacer para que tengan un
                    aspecto de deshabilitados?</div>
                  <div><br>
                  </div>
                  <div>Como no pude lograrlo, intenté tapar los
                    controles del frame mostrardo otro sobre estos, como
                    un panel, o una imagen con trasparencia, incluso
                    probé otros controles. El panel funciona
                    perfectamente, pero sería bueno que el usuario
                    pudiera seguir viendo que hay dentro del frame
                    deshabilitado. Con la imagen no logré hacer que se
                    posicione por sobre los demás controles del frame. </div>
                  <div><br>
                  </div>
                  <div>¿algunas idea?</div>
                  <div><br>
                  </div>
                  <div>gracias de antemano.</div>
                  <br>
                  <br>
                </div>
              </div>
              <div>
                <pre>_______________________________________________
Lazarus-es mailing list
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a>
</pre>              </div>
            </blockquote>
            <font color="#888888"> <br>
              <br>
              <div>-- <br>
                <b><big>ARTEX TRADING sa</big></b><br>
                <i>José Ant. Cuello Principal</i></div>
            </font></div>
          <br>
          _______________________________________________<br>
          Lazarus-es mailing list<br>
          <a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br>
          <a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
          <br>
        </blockquote>
      </div>
      <br>
      <br>
      
      <br>
      <pre>_______________________________________________
Lazarus-es mailing list
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a>
</pre>    </blockquote>
    <br>
    <br>
    <div>-- <br>
      <b><big>ARTEX TRADING sa</big></b><br>
      <i>José Ant. Cuello Principal</i></div>
  </div></div></div>

<br>_______________________________________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus.freepascal.org" target="_blank">Lazarus-es@lists.lazarus.freepascal.org</a><br>
<a href="http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es" target="_blank">http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es</a><br>
<br></blockquote></div></div></div><br>
</blockquote></div><br>