Ver Mensaje Individual
  #3  
Antiguo 15-04-2012
jhonalone jhonalone is offline
Miembro
 
Registrado: sep 2007
Ubicación: Madrid
Posts: 547
Reputación: 17
jhonalone Va por buen camino
Gracias, Ecfisa, por estar siempre pendiende de ayudar.

Me voy a extender un poco más, a ver si consigo explicarme mejor.

Si en un Combo tienes código en el evento, OnClick, y mueves el ratón arriba y abajo por los items desplegados, el Combo va redibujando el item por el que pasa en azul oscuro, si haces Click sobre uno de ellos activa OnClick, pero si no haces click lo deja azul. Aunque parece que está seleccionado, si pulsas Enter no hace nada, aunque hayas puesto alguna instrucción en OnKeyDown.
Código Delphi [-]
procedure TFClien.ComboBox1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=vk_RETURN
     then SpeedButton3.Click;
end;

Pero si intentas desplazarte con las flechas genera un evento ONClick, aplicado al item siguiente al marcado hacia arriba o hacia abajo, dependiendo de la flecha que utilices.

Curiosamente, si haces Click en la tecla Return o Enter, no la reconoce, he probado a incluir un Beep si pulsa enter y no lo hace, ni en OnKeyDown ni en OnkeyPress con #13.

He hecho tantas pruebas ya, que no se lo hace ni cuándo se activa cada evento.

Lo que pretendo es muy sencillo:
Si utilizo las teclas para desplazarme, hacerlo libremente y, si pulso Enter, seleccionar el item iluminado. Y si no me desplazo con las flechas, sino con el cursor, que el item iluminado si lo dejo y pulso enter lo seleccione y genere el código para OnKeyDown u OnKeyPress, me da igual. Y si hago Click sobre un item genere el OnClick corrrespondiente.

No estoy seguro si lo vas a entender, porque esta noche ya estoy muy cansado, y he hecho tantas pruebas... que lo voy a dejar.

Si no me he explicado bien, dímelo y mañana lo intentaré de nuevo más despejado.

Saludos muy cordiales.
Responder Con Cita