Ver Mensaje Individual
  #2  
Antiguo 15-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 28
Lepe Va por buen camino
Todos los mensajes de la VCL tienen esos 3 parámetros. Si alguno no se utiliza, se le da un cero.

Perform (m:Tmessage, HParam:integer, Lparam:integer)

M es el mensaje que se va a mandar, en este caso se indica que es la presion de una tecla WM_KEYDOWN, pero tambien podría ser WM_KEYUP (por ejemplo)

HParam, es tambien nombrada como High Param, parte alta del parámetro, que tambien es un entero, y en este caso, se dice la tecla que se va a pulsar, (flecha abajo).

Lparam, se conoce como Low Param, parte baja del parámetro, en algunos casos se utiliza y en otros no. Cuando no se utiliza, se le da el valor 0.

Un ejemplo en el que los 3 parámetros tienen información relevante es el siguiente:

Si usamos Perform(wm_keydown, vk_tab,1) es identico a presionar la tecla tabulador, y pasar el foco al siguiente control.

En el caso de Perform(wm_keydown, vk_tab,-1) haría el equivalente a Shift+tab, es decir, enviar el foco al control que tiene un taborder inferior. Aqui compruebas que el valor de Lparam si es relevante, ya que dependiendo de su valor se hace una cosa u otra.


(que conste que lo de vk_tab lo digo de memoria, igual son valores, -1, 0 o bien 0, 1 )

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita