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