Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ComboBox - Pasar un "Key" presionado afuera como si fuera de allí (https://www.clubdelphi.com/foros/showthread.php?t=37322)

amadis 09-11-2006 16:14:48

ComboBox - Pasar un "Key" presionado afuera como si fuera de allí
 
ComboBox - Hacer DropDown sin estar en foco-

Que tal Gente.

Quisiera saber si es factible activar el evento AutoDropDown desde afuera del componente.

Siendo mas explicito, tengo el foco en un DBGrid, y la presionar una TECLA de [a-z] Paso la tecla al ComboBox.text y le doy el foco para que siga escribiendo.

El problema viene que cuando activo el AutoDropDown (que es lo que quiero tener en pantalla) no me toma la letra que fue asignada desde afuera sino que toma la 1º que de teclea en el objeto ComboBox.

¿Se puede transferir esa tecla que se presionó en el Grid, al Combobox, tal como si hubiese sido tecleada en el Combo? Ya que con eso solucionaria el problema.

O bien quizá si se puede desplegar la lista del combo de forma manual antes de pasarle la tecla que presionó el Grid puede funcionar.

Escucho sugerencias.

Si no fui claro pido disculpas!

Gracias

Bicho 09-11-2006 16:21:50

Prueba a ver si te sirve ésto:

Código Delphi [-]
ComboBox1.Perform(CB_SHOWDROPDOWN, 1,0);

Saludos

amadis 09-11-2006 18:30:19

No funciona
 
No reconoce el Identificador "CB_SHOWDROPDOWN"

Y puse en google CB_SHOWDROPDOWN y salen todos articulos de llamadas a las API de Windows para Vbasic. :confused:

Bicho 09-11-2006 18:34:24

Que versión de Delphi estás usando, yo con la versión 6 no tengo ningún problema.

roman 09-11-2006 18:36:03

Quizá por alguna extraña razón, hayas quitado la unidad Messages de la cláusula uses. La necesitas.

// Saludos

amadis 10-11-2006 12:06:01

Gracias!
 
Gracias Roman! faltaba Messages!

hace un tiempo instalé "Icarus - Uses List Analyzer for Delphi"
Para limpiar los formularios, y lo que hace es decir que Unit no se usa entonces las que no usaba las eliminé y ahí cayó Messages.

Ahora restituí todas las Units normales en Uses.

Gracias!

amadis 10-11-2006 12:43:50

consulta si esta el DropDown
 
una ultima cuestion que me surgió con este tema.

Puedo consultarpor ej al presionar Escape si la funcion (CB_SHOWDROPDOWN, 1,0); estáactiva?

es decir si el DropDownList está desplegado? Y de ser así cerrarlo?

Gracias

roman 10-11-2006 14:29:48

En Delphi7 el ComboBox tiene una propiedad DroppedDown que no sólo sirve para saber si está desplegada la lista, sino también para desplegarla, así que puedes simplemente poner:

Código Delphi [-]
ComboBox1.DroppedDown := not ComboBox1.DroppedDown;

// Saludos


La franja horaria es GMT +2. Ahora son las 21:43:12.

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