![]() |
LLamar a otra tecla desde un Button.
Hola Compañeros:
He hecho una aplicación y la utilizo con monitores táctiles, necesito llamar a la tecla de Avance Página y a los cursores desde el onclick de un Button, ¿sabéis como hacerlo? Gracias. |
Utiliza los virtual keys,
para los de pagina son Virtual Key Numero Lo que es VK_PRIOR 21 PAGE UP key VK_NEXT 22 PAGE DOWN key y si te refieres con lo de los cursores a las flechas son estas VK_LEFT 25 LEFT ARROW key VK_UP 26 UP ARROW key VK_RIGHT 27 RIGHT ARROW key VK_DOWN 28 DOWN ARROW key |
Ampliando un poco la respuesta del amigo Juan, decirte que si miras en la ayuda de Win32.hlp la entrada Virtual-Key Codes encontraras todos los VK
Este archivo de ayuda esta en ..\Archivos comunes\Borland Shared\MSHelp Espero te sirva |
Sí hasta ahí bien, pero necesitaba hacer eso desde el onclick de un button.
procedure TFimprimir.ImprimirClick(Sender: TObject); begin key:=VK_DOWN; end; |
Si nos dices que es lo que quieres conseguir, a lo mejor no necesitas esto o se puede hacer de otra forma.
Ya nos contaras |
Necesito desplazarme por los elementos de un Treeview, el problema es que utilizo una pantalla táctil y no dispongo de teclado, entonces utilizo botones en un formulario para actuar como tal, mi problema es que no se como hacer para emular el funcionamiento de los cursores y Avpag desde el onclick de un button.
|
Segun tengo entendido, las pantallas tactiles se comportan como si de un raton se tratara, por lo tanto, si haces un click en los nodos o en la barra de scroll del Treeview te deberia de funcionar.
Si esta solucion no te vale, tambien puedes hacer otra cosa. Para en AvPag y el RePag puedes hacer un despazamiento por los nodos hacia adelante y hacia atras de un valor fijo de nodos (por ejemplo la cantidad maxima que puede visualizarse en pantalla) Para los cursores seria el desplazamiento de un solo nodo. Que te parecen las soluciones? |
Me parece bien el problema es que no se desplazarme por los nodos, por eso había pensado en lo de las Sendkeys.
|
Bien, pues dame algo de tiempo y miro de prepararte un ejemplillo, ok? A ver si esta tarde te lo preparo
|
Bueno, a ver si te sirve el codigo siguiente
Para bajar Código:
Código:
procedure TForm1.SubirClick(Sender: TObject); Espero te sirva |
Es perfecto, muchas gracias.
|
Cuidado con:
with Tree do begin Nodo := Selected; Nodo := Nodo.GetPrev; if Nodo <> nil then Selected := Nodo; end; El Nodo<>nil es una comprobación un poco tardía! (sobre todo porque ya ha accedido a él). |
Cita:
siento no estar de acuerdo contigo. La asignacion que se hace con anterioridad (Nodo := Nodo.GetPrev) puede asignar a la variable Nodo o bien un TTreeNode o bien Nil (ninguno) por lo que la comparacion es correcta ya que antes no puedes hacer la comparacion |
El problema es que te olvidas del Nodo := Selected;
Nodo := Selected; Nodo := Nodo.GetPrev; if Nodo <> nil then Fijate en el Nodo := Nodo.GetPrev Si Selected es nil, Nodo.GetPrev como que hace aguas... |
Por lo tanto, el error no es la comparacion a Nil, sino que faltaria hacer una comprovacion de si hay algun nodo seleccionado y quedaria el codigo algo asi
Código:
procedure TForm1.SubirClick(Sender: TObject); |
La franja horaria es GMT +2. Ahora son las 12:50:03. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi