Page 1 of 1
SET KEY EN MDI
Posted: Sun Oct 05, 2008 5:19 am
by wmormar
Bueno amigos,
pues eso, hay forma de que me respete un setkey en cada ventana.
por ejemplo, tengo asignado el F2 en varias pantallas que tengo de mi sistema, pero cada ventana efectua cuestiones diferentes con el F2, hay manera de que cada pantalla, efectue la funcion definida para cada F2 de la ventana que tenga el foco?
espero haberme explicado, se agradecen de antemano las ayudas.
** SOLUCIONADO **
Posted: Sun Oct 05, 2008 7:20 am
by wmormar
Amigos,
solucionado, para los que tengan el mismo problema con los SETKEY
bastó con aplicarle el el bGotFocus a la window y ahí redefinir el set key, entoces cada vez que obtenga el foco, el set key será el que debe lleva cada child.
pos eso, jjejjejje
Posted: Mon Oct 06, 2008 4:49 pm
by ADBLANCO
EVALUA ESTO
- ****************************************************************************
CLASS TVKEY // Clase para controlar teclas de funcion
****************************************************************************
DATA OldKeys INIT {SETKEY(VK_F1 ),;
SETKEY(VK_F2 ),;
SETKEY(VK_F3 ),;
SETKEY(VK_F4 ),;
SETKEY(VK_F5 ),;
SETKEY(VK_F6 ),;
SETKEY(VK_F7 ),;
SETKEY(VK_F8 ),;
SETKEY(VK_F9 ),;
SETKEY(VK_F10 ),;
SETKEY(VK_F11 ),;
SETKEY(VK_F12 ),;
SETKEY(VK_F13 ),;
SETKEY(VK_F14 ),;
SETKEY(VK_F15 ),;
SETKEY(VK_F16 ),;
SETKEY(VK_F17 ),;
SETKEY(VK_F18 ),;
SETKEY(VK_F19 ),;
SETKEY(VK_F20 ),;
SETKEY(VK_F21 ),;
SETKEY(VK_F22 ),;
SETKEY(VK_F23 ),;
SETKEY(VK_F24 ),;
SETKEY(VK_INSERT),;
SETKEY(VK_DELETE),;
SETKEY(VK_UP ),;
SETKEY(VK_RIGHT ),;
SETKEY(VK_DOWN ),;
SETKEY(VK_SELECT),;
SETKEY(VK_PRINT ),;
SETKEY(VK_ESCAPE),;
SETKEY(VK_RETURN),;
SETKEY(VK_PRIOR ),;
SETKEY(VK_NEXT ),;
SETKEY(VK_HOME ),;
SETKEY(VK_END )}
METHOD New() CONSTRUCTOR
METHOD End()
ENDCLASS
METHOD New() CLASS TVKEY
::oldKeys[1] :=SETKEY(VK_F1 , NIL )
::oldKeys[2] :=SETKEY(VK_F2 , NIL )
::oldKeys[3] :=SETKEY(VK_F3 , NIL )
::oldKeys[4] :=SETKEY(VK_F4 , NIL )
::oldKeys[5] :=SETKEY(VK_F5 , NIL )
::oldKeys[6] :=SETKEY(VK_F6 , NIL )
::oldKeys[7] :=SETKEY(VK_F7 , NIL )
::oldKeys[8] :=SETKEY(VK_F8 , NIL )
::oldKeys[9] :=SETKEY(VK_F9 , NIL )
::oldKeys[10]:=SETKEY(VK_F10 , NIL )
::oldKeys[11]:=SETKEY(VK_F11 , NIL )
::oldKeys[12]:=SETKEY(VK_F12 , NIL )
::oldKeys[13]:=SETKEY(VK_F13 , NIL )
::oldKeys[14]:=SETKEY(VK_F14 , NIL )
::oldKeys[15]:=SETKEY(VK_F15 , NIL )
::oldKeys[16]:=SETKEY(VK_F16 , NIL )
::oldKeys[17]:=SETKEY(VK_F17 , NIL )
::oldKeys[18]:=SETKEY(VK_F18 , NIL )
::oldKeys[19]:=SETKEY(VK_F19 , NIL )
::oldKeys[20]:=SETKEY(VK_F20 , NIL )
::oldKeys[21]:=SETKEY(VK_F21 , NIL )
::oldKeys[22]:=SETKEY(VK_F22 , NIL )
::oldKeys[23]:=SETKEY(VK_F23 , NIL )
::oldKeys[24]:=SETKEY(VK_F24 , NIL )
::oldKeys[25]:=SETKEY(VK_INSERT, NIL )
::oldKeys[26]:=SETKEY(VK_DELETE, NIL )
::oldKeys[27]:=SETKEY(VK_UP , NIL )
::oldKeys[28]:=SETKEY(VK_RIGHT , NIL )
::oldKeys[29]:=SETKEY(VK_DOWN , NIL )
::oldKeys[30]:=SETKEY(VK_SELECT, NIL )
::oldKeys[31]:=SETKEY(VK_PRINT , NIL )
::oldKeys[32]:=SETKEY(VK_ESCAPE, NIL )
::oldKeys[33]:=SETKEY(VK_RETURN, NIL )
::oldKeys[34]:=SETKEY(VK_PRIOR , NIL )
::oldKeys[35]:=SETKEY(VK_NEXT , NIL )
::oldKeys[36]:=SETKEY(VK_HOME , NIL )
::oldKeys[37]:=SETKEY(VK_END , NIL )
Return self
METHOD End() CLASS TVKEY
SETKEY(VK_F1 ,::OldKeys[ 1])
SETKEY(VK_F2 ,::OldKeys[ 2])
SETKEY(VK_F3 ,::OldKeys[ 3])
SETKEY(VK_F4 ,::OldKeys[ 4])
SETKEY(VK_F5 ,::OldKeys[ 5])
SETKEY(VK_F6 ,::OldKeys[ 6])
SETKEY(VK_F7 ,::OldKeys[ 7])
SETKEY(VK_F8 ,::OldKeys[ 8])
SETKEY(VK_F9 ,::OldKeys[ 9])
SETKEY(VK_F10 ,::OldKeys[10])
SETKEY(VK_F11 ,::oldKeys[11])
SETKEY(VK_F12 ,::oldKeys[12])
SETKEY(VK_F13 ,::oldKeys[13])
SETKEY(VK_F14 ,::oldKeys[14])
SETKEY(VK_F15 ,::oldKeys[15])
SETKEY(VK_F16 ,::oldKeys[16])
SETKEY(VK_F17 ,::oldKeys[17])
SETKEY(VK_F18 ,::oldKeys[18])
SETKEY(VK_F19 ,::oldKeys[19])
SETKEY(VK_F20 ,::oldKeys[20])
SETKEY(VK_F21 ,::oldKeys[21])
SETKEY(VK_F22 ,::oldKeys[22])
SETKEY(VK_F23 ,::oldKeys[23])
SETKEY(VK_F24 ,::oldKeys[24])
SETKEY(VK_INSERT,::oldKeys[25])
SETKEY(VK_DELETE,::oldKeys[26])
SETKEY(VK_UP ,::oldKeys[27])
SETKEY(VK_RIGHT ,::oldKeys[28])
SETKEY(VK_DOWN ,::oldKeys[29])
SETKEY(VK_SELECT,::oldKeys[30])
SETKEY(VK_PRINT ,::oldKeys[31])
SETKEY(VK_ESCAPE,::oldKeys[32])
SETKEY(VK_RETURN,::oldKeys[33])
SETKEY(VK_PRIOR ,::oldKeys[34])
SETKEY(VK_NEXT ,::oldKeys[35])
SETKEY(VK_HOME ,::oldKeys[36])
SETKEY(VK_END ,::oldKeys[37])
Return nil
Posted: Mon Oct 06, 2008 4:54 pm
by ADBLANCO
ejemplo de uso
LOCAL oDlg,oFKey,bBut05
oFKey:=tvkey():new // CLASE TVKEY (control de teclas de funcion)
SETKEY(VK_F5 , { || eval(bBut05 ) })
bBut05 := { || IIF(oBut05:lActive ,(EVAL(bButDisable),;
FINAN(oDlg),EVAL(bButEnable),oBut05:Setfocus()),)}
DEFINE DIALOG oDlg RESOURCE "CAJA_1" OF oDlgAnt;
FONT oFontGen;
TITLE "Caja"
REDEFINE BUTTON oBut05 ID 105 OF oDlg ;
MESSAGE "Pulse Para Operaciones Financiado" ;
PROMPT "[F5]-Financ." ;
ACTION EVAL(bBut05)
ACTIVATE DIALOG oDlg CENTER
oFKey:End()
Posted: Wed Oct 08, 2008 9:55 pm
by wmormar
Angel,
gracias por tu atención.
lo checaré a la vrebedad posible
Posted: Thu Oct 09, 2008 1:41 am
by gabo
William
de xHarbour
aKeysOld := HB_SetKeySave(NIL)
.......
.......
HB_SetKeySave(aKeysOld)
Saludos
GABO
Posted: Thu Oct 09, 2008 1:57 am
by wmormar
Gabo,
me sirve, aunque es el mismo efecto de setkey().
sigo checando opciones, aunque hasta ahora he colocado el gotfocus en la ventana y me ha funcionado perfectamente