PDA

Ver la Versión Completa : Despliegue de listas en Grid a partir de PickList


Cabanyaler
11-07-2007, 14:09:19
Hola, me explico.
Tengo un Grid donde en determinadas columnas tengo asignados valores mediante el PickList.
Mi pregunta es.
¿Existe algún evento de la columna del grid que me permita que cuando esa columna recibe el foco y teniendo valor en su PickList como una lista desplegable, esta lista se autodespliegue y coja el foco?
El foco lo debe coger la lista desplegable, no la celda de la susodicha columna

Gracias

Delfino
12-07-2007, 19:33:44
No se si necesitas este (http://delphi.about.com/od/usedbvcl/l/aa092703b.htm) codigo :
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
//Making the drop-down pick list appear faster
if Column.PickList.Count > 0 then
begin
keybd_event(VK_F2,0,0,0);
keybd_event(VK_F2,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,0,0);
keybd_event(VK_DOWN,0,0,0);
keybd_event(VK_DOWN,0,KEYEVENTF_KEYUP,0);
keybd_event(VK_MENU,0,KEYEVENTF_KEYUP,0);
end;
end;

Cabanyaler
13-07-2007, 11:36:15
Ummm, lo pruebo y te cuento, pero parece tener buenísima pinta.
Gracias.

Cabanyaler
20-07-2007, 12:52:13
Pues no logro dominar el comprotamiento correo deseado con estos eventos, y por otro lado no me gusta ya que por otros controles de eventos de teclas dentro del dbgrid se producen efectos laterales no deseados.
Lo dejo sin implementar, tampoco era vital, simplemente una petición del usuario para no coger tan a menudo el ratón.
Gracias de todos modos.

fjcg02
20-07-2007, 22:49:42
Pues enseña a los usuarios a utilizar el guindous.
Para desplegar la lista, pon el foco en el campo, da intro o f2, luego la tecla alt+flecha para abajo, y ya está.

Los que somos viejos, sabemos manejarnos sin utilizar el ratón, o dejandolo a la minima expresión.

Hay mucha gente, que no sabe que con tab pasas al siguiente campo, con sift+tab vas al anterior, y así hasta casi el infinito ( os remito a la ayuda del SO para el que quiera profundizar).

En el curro se descojonan de mi porque lo poco que trabajo :D lo hago todo ( o casi todo) desde una consola de comandos, ya que para mi es más rápido y cómodo que ir pinchando en las ventanitas de marras. Y no digamos si estás cogiendo un equipo en remoto que está en casa dios y tienes una linea de 64 k's.

Saludos

Delfino
23-07-2007, 18:15:44
Para desplegar la lista, pon el foco en el campo, da intro o f2, luego la tecla alt+flecha para abajo, y ya está.
Para ahorrarte el F2 activa la opcion de dgAlwaysShowEditor..