PDA

Ver la Versión Completa : TActionList y shorcuts sobre un control


oliverinf
09-09-2004, 21:28:30
Hola a todos, desearía saber si hay alguna manera de que las acciones de un TActionList, donde cada acción tiene un shorcut, se ejecuten sólo si el shorcut se realiza sobre un determinado control, por ejemplo, sobre un grid.

Desde ya muchas gracias.

Hasta luego.


Guillermo

roman
09-09-2004, 21:39:51
sólo si el shorcut se realiza sobre un determinado control, por ejemplo, sobre un grid.


¿Qué quieres decir con ésto? Si te refieres a que sólo se ejecute la acción cuando la control activo es el DBGrid entonces puedes checar la propiedad ActiveControl del formulario en el evento OnExecute de la acción. Pero si la acción sólo se ha de realizar estando el DBGrid activo pues quizá no necesitas una acción sino simplemente ejecutar el código en el evento OnKeyDown u OnKeyUp del DBGrid.

// Saludos

oliverinf
09-09-2004, 21:53:37
Gracias por tu pronta respuesta.
La idea es tener al posibilidad de que las acciones se realicen, a través de shortcuts, sólo si están sobre un determinado control.
Te cuento, tengo un form un MainMenú, un PopMenu, tiene Edits y tiene un grid. En ese grid permito insertar, editar y eliminar filas, pero deseo que esas acciones se ejecuten al presionar las teclas Ins, F2 y Del, respectivamente. Además de poder ejecutarlas desde el MainMenu y desde el PopMenu (estos ejecutan las acciones de la ActionList).
El problema lo tengo cuando estoy en un edit y presiono Del para borrar el contenido del Edit, en ese momento se ejecuta la acción del ActionList y no es lo que deseo.

Hasta luego.

roman
09-09-2004, 22:07:28
Sí, tienes razón, tu planteamiento es del todo correcto.

Pues, como te dije, supongo que en el evento OnExecute miras si ActiveControl es el DBGrid:


procedure TForm1.Action1Execute(Sender: TObject);
begin
if ActiveControl = DBGrid1 then
{ código a ejecutar }
end;


// Saludos

oliverinf
09-09-2004, 22:50:03
Muchas gracias roman, voy a tener que hacer eso.