ON KEY F1

HMG en Español

Moderator: Rathinagiri

Post Reply
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

ON KEY F1

Post by SALINETAS24 »

Hola a todos.

¿hay alguna forma de evitar que cuando se pulse la tecla F1, el sistema muestre el mensaje "no hay ayuda definida para esa tecla"?.
Yo utilizo este código que detectar la pulsación de las teclas en cualquier parte del programa para activar una calculadora residente y una agenda, y lo que me gustaría es que cuando pulse F1 ejecutara mi programa de ayuda sin mostrar el mensaje del windons....
Alguna idea..
Pd. Como ultima opción puedo usar el ON KEY F1 en cada procedimiento pero es un poco rollo.
Saludos y vamos con esa cervecita..

Code: Select all

//-----------------------------------------------------------------
//---> FUNCION PARA ACTIVA LA AGENDA Y LA CALCULADORA.
//-----------------------------------------------------------------

Function MyFuncKey ()
	
LOCAL  nHWnd:=EventHWND ()
LOCAL  nMsg:=EventMSG ()
LOCAL  nWParam:=EventWPARAM ()
LOCAL  nLParam:=EventLPARAM ()
LOCAL i := ASCAN ( _HMG_SYSDATA [3] ,  nHWnd )
LOCAL dfe2:= dFecha_hoy

	DO CASE

		CASE HMG_GetLastVirtualKeyDown () == VK_F1
			HMG_CleanLastVirtualKeyDown(); _Ayuda(cFichHelp)
		CASE HMG_GetLastVirtualKeyDown () == VK_F3
			HMG_CleanLastVirtualKeyDown(); _MAINCALC()
		CASE HMG_GetLastVirtualKeyDown () == VK_F4
			HMG_CleanLastVirtualKeyDown(); _AGENDA() 
			dFecha_hoy:=dfe2 
			Refres_Memop(2)
		CASE HMG_GetLastVirtualKeyDown () == VK_ESCAPE
			HMG_CleanLastVirtualKeyDown(); lSalPitando:=.F.
		CASE HMG_GetLastVirtualKeyDown () == VK_UP .AND. i > 0 .AND. ( _HMG_SYSDATA [1] [i] != "BROWSE" .AND. _HMG_SYSDATA [1] [i] != "TREE")
			HMG_CLEANLASTVIRTUALKEYDOWN() ; HMG_PRESSKEY(VK_SHIFT,VK_TAB)
		CASE HMG_GetLastVirtualKeyDown () == VK_DOWN .AND. i > 0 .AND. ( _HMG_SYSDATA [1] [i] != "BROWSE".AND. _HMG_SYSDATA [1] [i] != "TREE")
			HMG_CLEANLASTVIRTUALKEYDOWN() ; HMG_PRESSKEY(VK_TAB)
	ENDCASE
	

	
RETURN
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
User avatar
dragancesu
Posts: 921
Joined: Mon Jun 24, 2013 11:53 am
DBs Used: DBF, MySQL, Oracle
Location: Subotica, Serbia

Re: ON KEY F1

Post by dragancesu »

in some definitions control exists
[ HELPID <nHelpId> ]
but nowhere how it works, in vindovs HELP is defined on the F1 key so I guess that maybe would be the solution
User avatar
serge_girard
Posts: 3167
Joined: Sun Nov 25, 2012 2:44 pm
DBs Used: 1 MySQL - MariaDB
2 DBF
Location: Belgium
Contact:

Re: ON KEY F1

Post by serge_girard »

Maybe this:

Code: Select all

 ON KEY F1			ACTION nothing() 
 ...

function nothing()
return
 
Serge
There's nothing you can do that can't be done...
User avatar
SALINETAS24
Posts: 667
Joined: Tue Feb 27, 2018 3:06 am
DBs Used: DBF
Contact:

Re: ON KEY F1

Post by SALINETAS24 »

Hola y gracias por contestar.
Serge, con ON KEY funciona "parcialmente". Si trabajo así tengo que poner cada vez que defino una ventana

Code: Select all

ON KEY F1 ACTION Ayuda
para que el usuario tenga acceso al fichero de ayuda. Un rollo, ya que si dentro de un procedimiento llamas a otro tienes que volver a poner el ON KEY... y así sucesivamente.

Es lo que dice el compañero Dragancesu, es un control que asigna WINDOWS a la tecla F1 y salvo que alguien sepa como apoderarse de él, lo tengo mal.
He estado mirando los fuentes de h_help pero tampoco he sacado nada en claro.
Y en lo que respecta a la función que yo utilizo para detectar la pulsación de la tecla F1, he puesto esta modificación

Code: Select all

	CASE HMG_GetLastVirtualKeyDown () == VK_F1
			msgbox("detecto"; HMG_CleanLastVirtualKeyDown(); _Ayuda(cFichHelp)
para ver si era posible detectar la pulsación de la tecla F1 antes de que se muestre el mensaje ...,PERO NO, sigue mostrando el mensaje "NO EXISTE NINGÚN TIPO DE AYUDA ASOCIADO CON ESTE ELEMENTO" , y seguidamente el proceso.

Mi intención era mostrar una ayuda que me fuese más sencilla, tipo TXT, y sobre todo usar la tecla F1.., si uso la tecla F2 .., PROBLEMA SOLUCIONADO.., pero lo dicho .. yo quiero que sea con la F1. :oops:
Como dijo el gran pensador Hommer Simpson..., - En este mundo solo hay 3 tipos de personas, los que saben contar y los que no. :shock:
Post Reply