FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Sender que no envia....
Que tal a todos...
Tengo una duda, trabajo en un Form con varios controles y necesito combiar entre ellos ya sea al precionar enter o bien con las teclas de dirección (fechas), todo bien pero cuando necesito diferenciar entre los controles para abrir la lista de un TComboBox no me responde con Sender, diferencia bien el control pero no abre la lista, he aqui algunas lineas de codigo: Else If ((Key In[VK_DOWN,VK_RETURN]) And (ActiveControl Is TComboBox)) Then TComboBox(Sender).DroppedDown:=True; // CBMarca.DroppedDown:=true; Alguien podria comentar algo al respecto?????? Gracias. |
#2
|
||||
|
||||
Cita:
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#3
|
|||
|
|||
Gracias..Pero igual no funciona.
Pues cambie el codigo por el que me indicaste pero sigue igual, no funciona, faltara algun swith que activar o sobornar a algun duende dentro del compilador???
Que opinan???? |
#4
|
||||
|
||||
Hasta ahora no has dicho en dónde manejas el código que muestras. Si lo haces, como creo, en el evento OnKeyPress del formulario entonces tienes que tomar la otra opción que propone Federico: ActiveControl en todos lados. Porque Sender es el formulario y no el control y en cualquier momento la línea
TComboBox(Sender).DroppedDown:=True; te va a mandar un "Access violation". // Saludos |
#5
|
|||
|
|||
En efecto...
Que tal???
Pues casi casi, Roman, el codigo lo tengo en el evento OnKeyDown del Form, no entendi muy bien lo que quieres decir con "ActiveControl en todos lados". Gracias por su tiempo y ayuda. |
#6
|
||||
|
||||
O sea, el parámetro Sender identifica al control que manda el mensaje, que en general será el control al que está asociado el evento.
Como tú estás usando el evento OnKeyDown del formulario, entonces es éste el que entra como parámetro Sender y por tanto no sirve para lo que quieres. Por otro lado ActiveControl identifica al control del formulario que tenga el foco del teclado. Entonces, en tu código original debes omitir Sender en todos lados (la opción "para nada" de Federico) y usar ActiveControl:
Tú usabas Sender en un lado y ActiveControl en otro pero en este caso Sender <> ActiveControl y por ello no funcionaba. // Saludos |
|
|
|