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