Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   TActionList se mantiene activo aunque el Form pierda foco (https://www.clubdelphi.com/foros/showthread.php?t=55522)

gluglu 18-04-2008 19:06:45

TActionList se mantiene activo aunque el Form pierda foco
 
Hola compañer@s !

Me acabo de dar cuenta después de mucho tiempo utilizándolo, que en mi aplicación MDI, si un Form tiene un ActionList activo (State := asNormal), y paso el foco a otro Form MDI diferente, o si lo minimizo, el ActionList del form que ha perdido el foco o que se ha minimizado, sigue activo. :(

Esto es así, o no debería serlo. Tengo que activar y desactivar manualmente el TActionList cada vez que un Form adquiera foco o lo pierda ?

Se podría comprobar por ejemplo en el evento OnExecute del propio TActionList, si el Form al que pertenece tiene foco o no ?

Utilizo el evento OnActivate del Form para otras cosas y no me conviene meter en dicho evento la posible activación del TActionList.

Gracias por vuestros comentarios ;)

maeyanes 18-04-2008 20:02:11

Hola...

A que te refieres con que sigue activo?

Por que el TActionList es un componente no visual...


Saludos...

roman 18-04-2008 20:04:48

Yo supongo que se refiere a que las acciones siguen disponibles (por ejemplo vía un shortcut) aun estando en otro formulario. Aunque éste es el comportamiento que yo esperaría.

// Saludos

MaMu 18-04-2008 20:06:18

Cita:

Empezado por maeyanes (Mensaje 281081)
Hola...

A que te refieres con que sigue activo?

Por que el TActionList es un componente no visual...


Saludos...

Se debe refirir al TActionBand asociado al TActionList en cuestión. Debe quedarle algun item resaltado, aún al perder el foco del form.

gluglu 19-04-2008 13:10:52

Perdón por tardar en responder.

Me refiero a lo que dice Roman, que los shortcuts de teclas siguen activos y me abren otros formularios o me permiten acciones que en teoría no deberían de estar disponibles si un form no tiene el foco.

No me refiero a opciones de menú, sino a eso, a las combinaciones de teclas activas.

Por ejemplo, con Ctrl-D abro un form desde otro form determinado. Pero si este form determinado pierde el foco o se minimiza, no me gustaría que Ctrl-D me siguiera abriendo el nuevo form.

Creo que como dice Roman, ese es el comportamiento que presumiblemente se esperará, pero yo no me lo esperaba. Así que tendré que controlar yo ese comportamiento manualmente al parecer. :o

gluglu 19-04-2008 16:22:53

Finalmente lo he solucionado así :
Código Delphi [-]
procedure TMiForm.ActionList1Execute(Action: TBasicAction;
  var Handled: Boolean);
begin
  if (not Self.Active) or (Self.WindowState = wsMinimized) then
    Handled := True;
end;

Indicar de nuevo que en mi caso particular tengo una aplicación MDI y por eso la comprobación de si el form está minimizado.


La franja horaria es GMT +2. Ahora son las 20:13:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi