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:
procedure TfmListado.acReporteUpdate(Sender: TObject);
begin
(Sender as TAction).Enabled := FHabilitado and (dsListado.DataSet.State =
dsBrowse);
end;
Con esta forma que yo estaba usando, no logro que los TToolButtons se muestren deshabilitados
if FHabilitado then
alListado.State := asNormal // alListado es un
TctionList
else
alListado.State := asSuspended;
, y al modificarlos as� directamente
for i := 0 to tbListado.ControlCount - 1 do
tbListado.Controls[i].Enabled := FHabilitado; // tbListado es
el toolbar que usa los TAction
luego no reflejan el verdadero estado del TAction hasta el nuevo OnUpdate.
Al final el m�todo SetHabilitado de TFrame qued� as�:
procedure TfmListado.SetHabilitado(AValue: Boolean);
var
i: Integer;
begin
if FHabilitado=AValue then Exit;
FHabilitado:=AValue;
Enabled := FHabilitado;
if FHabilitado then begin
dgListado.TitleFont.Color := clDefault;
dgListado.Font.Color:= clDefault
end else begin
dgListado.TitleFont.Color := clInactiveCaption;
dgListado.Font.Color:= clInactiveCaption;
end;
tbListado.Enabled := FHabilitado;
dgListado.Enabled := FHabilitado;
sgListado.Enabled := FHabilitado;
end;
Bueno, era bastante sencillo despu�s de todo, solo hay que sabe que hacer en cada caso. Gracias.
2011/10/25 Gast�n Dall' Oglio <gaston.dalloglio en gmail.com>
Show quoted text 114 lines
Antonio
2011/10/25 Jose Antonio Cuello Principal <jcuello en artextrading.com>
> Pues solo tienes que cambiar el estado del boton no del tactionlist. En
> evento OnUpdate (que puede ser el mismo para todos los TActions)
>
Tengo entendido que deshabilitando el TActionList deshabilito todas las
acciones, evitando as� que se contin�en chequeando innecesariamente los
OnUpdate de cada accci�n.
>
> (Sender as TAction).Enabled := FEnabled;
>
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.
Saludos.
>
> Un saludo
>
> El 25/10/11 13:42, Gast�n Dall' Oglio escribi�:
>
> Hola Jose.
>
> Todos los botones del toolbar utilizan un TAction. Cuando quiero
> deshabilitar todos los TAction deshabilito el TActionList as�:
>
> if FHabilitado then
> alListado.State := asNormal // alListado es un TActionList
> else
> alListado.State := asSuspended;
>
> Eso funciona, el problema es el aspecto de los botones.
>
> Saludos!
>
> 2011/10/25 Jose Antonio Cuello Principal <jcuello en artextrading.com>
>
>> 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.
>>
>> Un saludo.
>>
>>
>> El 24/10/11 19:31, Gast�n Dall' Oglio escribi�:
>>
>> Hola gente.
>>
>> Les quer�a consultar por si algunos me puede dar una idea de que hacer,
>> o si me estoy olvidando algo en el apuro.
>>
>> 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?
>>
>> 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.
>>
>> �algunas idea?
>>
>> gracias de antemano.
>>
>>
>> _______________________________________________
>> Lazarus-es mailing listLazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>
>>
>>
>> --
>> *ARTEX TRADING sa*
>> *Jos� Ant. Cuello Principal*
>>
>> _______________________________________________
>> Lazarus-es mailing list
>> Lazarus-es en lists.lazarus.freepascal.org
>>
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>>
>>
>
>
> _______________________________________________
> Lazarus-es mailing listLazarus-es en lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
>
> --
> *ARTEX TRADING sa*
> *Jos� Ant. Cuello Principal*
>
> _______________________________________________
> Lazarus-es mailing list
> Lazarus-es en lists.lazarus.freepascal.org
>
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
>
>
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20111025/04bfd426/attachment-0001.html>