Jump to content
Fivewin Brasil

Códigos SetKey


evertonlb

Recommended Posts

Pessoal.. preciso saber onde encontro os códigos para usar no Setkey.. Gostaria de deixar o ALT+R para abrir o contas a receber, o ALT+O para abrir Ordem de Serviço... Procurei no Forum mas não encontrei.. Alguém pode me ajudar?

Ja tenho atalhos usando F1, F2, F3... mas preciso usar as combinações de teclas Ctrl, Alt, Shift...

Att.

Everton

Link to comment
Share on other sites

Isso ai que eu queria.. Obrigado!

Porem, fiz e não funcionou.. evidentemente fiz algo errado, só não sei o que!!!

   SETKEY(VK_F2,    {||PesqCliente()      })     Aqui Funciona 
   SETKEY(VK_F11,   {||VES00502()         })     Aqui funciona


   SETKEY(303,      {||VES00102()         })     Aqui NÃO Funciona               

Aguardo mais uma vez a gentileza dos colegas!!

Att.

Everton

Link to comment
Share on other sites

Kapiaba, eu quero colocar isso no Form principal.. ai, em qualquer lugar do software o cara pode chamar o VES00102(), que nada mais é do que uma janela para fazer observação no cadastro do cliente.. Mas ela precisa ficar disponível o tempo todo.. ai dentro da tela eu desabilito para o "uçuárrio" ( termo muito usado na região Oeste de SC por descendentes alemães ) não ficar chamando a janela infinitamente. Na saída eu torno a ativá-la.

Vou tentar definir no início do Form principal, mas uma duvida que surgiu é:

Porque que usando o VK_F9, VK_F2 e VK_F11 não preciso defini-las? Elas já vem definidas "de fábrica"?

Link to comment
Share on other sites

Sim, veja \fwh..\include\vKey.ch



#define VK_F1 112 // 0x70
#define VK_F2 113 // 0x71
#define VK_F3 114 // 0x72
#define VK_F4 115 // 0x73
#define VK_F5 116 // 0x74
#define VK_F6 117 // 0x75
#define VK_F7 118 // 0x76
#define VK_F8 119 // 0x77
#define VK_F9 120 // 0x78
#define VK_F10 121 // 0x79
#define VK_F11 122 // 0x7A
#define VK_F12 123 // 0x7B
#define VK_F13 124 // 0x7C
#define VK_F14 125 // 0x7D
#define VK_F15 126 // 0x7E
#define VK_F16 127 // 0x7F
#define VK_F17 128 // 0x80
#define VK_F18 129 // 0x81
#define VK_F19 130 // 0x82
#define VK_F20 131 // 0x83
#define VK_F21 132 // 0x84
#define VK_F22 133 // 0x85
#define VK_F23 134 // 0x86
#define VK_F24 135 // 0x87


FORM Principal??? Você é ou era uçuárrrrio de DELPHIIIRRRRCCCCCCCCCCCCCCC??? kkkkkkkkkkkkkkkkkkkkkkk


Senhor, livrai-nos de todo o mal(delphi), amém.


Em FiveWin, não seria JANELA(WINDOW.PRG) Principal??


Abs,

Link to comment
Share on other sites

Cara.. unica coisa que sei a respeito do Delphi, é que ele existe. Sinceramente eu deveria ter me dedicado a aprende-lo qdo tive tempo. Mas o xBase

me agrada muito, assim, ainda que muito limitado, aplico meu tempo a aprender e usar o FW.


Então usarei o termo correto "JANELA principal"... Pronto, espero ter sido aceito ao grupo! rsrsrsrsrsrs


Mas Olha só... tenho o Vkey.CH que tem algumas teclas já definidas, e também tenho a Inkey.CH que tem muito mais teclas definidas,

Se eu colocar um


#Include "inkey.ch"


No início da "JANELA principal", estes valores não estariam todos definidos dentro do meu sófiti?

Porque raios não consigo usar alem das Fx?


Att.

Everton
Link to comment
Share on other sites

#Include "inkey.ch"


No início da "JANELA principal", estes valores não estariam todos definidos dentro do meu sófiti?

Porque raios não consigo usar alem das Fx?


Acho que não funcionará...


Terias que usar um classe definindo estas novas teclas de atalho, tem uma no forum inter, mas não localizei o nome.


Não lembro se foi o Manuel Mercado que a Fez ou a implementou.


Não sei informar se é a API do rWindows ou se é o FiveWin q não deixa.


Bem vindo ao TIME... kkkkkkkkkkkkk,, Delphiiiirrrccc, graças à Deus que não aprendestes.

Link to comment
Share on other sites

Boa tarde Everton! Tente assim

Eu chamo uma função só, dentro dela eu trato o que eu quero a partir do parametro "PF2"

setkey( 113, { | nkey | escrevepf("PF2") } )

Mais uma coisa eu não uso nenhum .ch para setar teclas coloco o codigo da tecla direto

a linha de comando está no principo da main()

Espero ter ajudado

Link to comment
Share on other sites

EU FAÇO ASSIM:

   SETKEY( VK_F2 , {|| ChkKeyFn("F2") })
   SETKEY( VK_F3 , {|| ChkKeyFn("F3") })

DAÍ, DENTRO DA FUNCAO ChkKeyFn(cPar) REDIRECIONO PARA A FUNÇÃO APRORPIADA.

FUNCTION ChkKeyFn(cKey)
   if GetKeyState( VK_CONTROL ) // Caso quera conjugar CTRL+F??
      IF cKey = "F2" ; FuncaoDoCtrlF2() ; ENDIF
      IF cKey = "F3" ; FuncaoDoCtrlF3() ; ENDIF
   ELSEIF GetKeyState( VK_ALT ) // Caso quera conjugar ALT+F??
      IF cKey = "F2" ; FuncaoDoAltF2() ; ENDIF
      IF cKey = "F3" ; FuncaoDoAltF3() ; ENDIF
   ELSE // Apenas F2
      IF cKey = "F2" ; FuncaoDoF2() ; ENDIF
      IF cKey = "F3" ; FuncaoDoF3() ; ENDIF
   ENDIF
RETURN NIL

COMFORME VOCÊ PODE VER, PODEM SER USADAS OUTRAS TECLAS (F3, F4, ETC.) MAS PRECISA PASSAR ISSO COMO PARÂMETRO TAMBÉM.

Link to comment
Share on other sites

Ariston, não funciona o ALT+, o que está errado?


#include "FiveWin.ch"

#Define VK_A 65 // tecla CTRL+A
#Define VK_B 66 // tecla CTRL+B
#Define VK_K 75 // tecla CTRL+K
#define VK_P 80 // tecla CTRL+P

//----------------------------------------------------------------//

static oWnd

function Main()

local oBar

/*
SetKey( VK_A, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )

SetKey( VK_B, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )

SetKey( VK_K, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )

SetKey( VK_P, {|| If( GetASyncKey( VK_MENU ), Shortcut(), Nil ) } )
*/

// Como acionar a tecla ALT+ aqui??
SETKEY( VK_F2 , {|| ChkKeyFn("F2") })

SETKEY( VK_F3 , {|| ChkKeyFn("F3") })


DEFINE WINDOW oWnd TITLE "SetKey "

DEFINE BUTTONBAR oBar _3D OF oWnd

DEFINE BUTTON OF oBar

SET MESSAGE OF oWnd TO "Setkey " NOINSET CLOCK DATE KEYBOARD

ACTIVATE WINDOW oWnd

return nil

Procedure Shortcut()

If GetKeyState(VK_SHIFT) // Shift
? "Shift+" // funciona
end

If GetKeyState(VK_CONTROL) // CTRL
? "Ctrl+" // funciona
end

If GetKeyState(VK_MENU) // Alt
? "Alt+" // No funciona
end

return

FUNCTION ChkKeyFn(cKey)

if GetKeyState( VK_CONTROL ) // Caso quera conjugar CTRL+F??

IF cKey = "F2" ; FuncaoDoCtrlF2() ; ENDIF

IF cKey = "F3" ; FuncaoDoCtrlF3() ; ENDIF

ELSEIF GetKeyState( VK_MENU ) // VK_ALT ???Caso quera conjugar ALT+F??

IF cKey = "F2" ; FuncaoDoAltF2() ; ENDIF

IF cKey = "F3" ; FuncaoDoAltF3() ; ENDIF

ELSE // Apenas F2

IF cKey = "F2" ; FuncaoDoF2() ; ENDIF

IF cKey = "F3" ; FuncaoDoF3() ; ENDIF

ENDIF

RETURN NIL

FUNCTION FuncaoDoCtrlF2()

? [FuncaoDoCtrlF2()]

RETURN NIL

FUNCTION FuncaoDoCtrlF3()

? [FuncaoDoCtrlF3()]

RETURN NIL

FUNCTION FuncaoDoAltF2()

? [FuncaoDoAltF2()]

RETURN NIL

FUNCTION FuncaoDoAltF3()

? [FuncaoDoAltF3()]

RETURN NIL

FUNCTION FuncaoDoF2()

? [FuncaoDoF2()]

RETURN NIL

FUNCTION FuncaoDoF3()

? [FuncaoDoF3()]

RETURN NIL

Link to comment
Share on other sites

Ariston, não funciona o ALT+, o que está errado?
#include "FiveWin.ch"
 
#Define VK_A   65    // tecla CTRL+A
#Define VK_B   66    // tecla CTRL+B
#Define VK_K   75    // tecla CTRL+K
#define VK_P   80    // tecla CTRL+P
 
//----------------------------------------------------------------//
 
static oWnd
 
function Main()
 
   local oBar
 
   /*
   SetKey( VK_A, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )
 
   SetKey( VK_B, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )
 
   SetKey( VK_K, {|| If( GetKeyState( VK_CONTROL ), Shortcut(), Nil ) } )
 
   SetKey( VK_P, {|| If( GetASyncKey( VK_MENU    ), Shortcut(), Nil ) } )
   */
 
   // Como acionar a tecla ALT+ aqui??
   SETKEY( VK_F2 , {|| ChkKeyFn("F2") })
 
   SETKEY( VK_F3 , {|| ChkKeyFn("F3") })
 
 
   DEFINE WINDOW oWnd TITLE "SetKey    "
 
   DEFINE BUTTONBAR oBar _3D OF oWnd
 
   DEFINE BUTTON OF oBar
 
   SET MESSAGE OF oWnd TO "Setkey    " NOINSET CLOCK DATE KEYBOARD
 
   ACTIVATE WINDOW oWnd
 
return nil
 
Procedure Shortcut()
 
   If GetKeyState(VK_SHIFT) // Shift
      ? "Shift+"  // funciona
   end
 
   If GetKeyState(VK_CONTROL) // CTRL
      ? "Ctrl+"  // funciona
   end
 
   If GetKeyState(VK_MENU) // Alt
      ? "Alt+"  // No funciona
   end
 
return
 
FUNCTION ChkKeyFn(cKey)
 
   if GetKeyState( VK_CONTROL ) // Caso quera conjugar CTRL+F??
 
      IF cKey = "F2" ; FuncaoDoCtrlF2() ; ENDIF
 
      IF cKey = "F3" ; FuncaoDoCtrlF3() ; ENDIF
 
   ELSEIF GetKeyState( VK_MENU ) // VK_ALT ???Caso quera conjugar ALT+F??
 
      IF cKey = "F2" ; FuncaoDoAltF2() ; ENDIF
 
      IF cKey = "F3" ; FuncaoDoAltF3() ; ENDIF
 
   ELSE // Apenas F2
 
      IF cKey = "F2" ; FuncaoDoF2() ; ENDIF
 
      IF cKey = "F3" ; FuncaoDoF3() ; ENDIF
 
   ENDIF
 
RETURN NIL
 
FUNCTION FuncaoDoCtrlF2()
 
   ? [FuncaoDoCtrlF2()]
 
RETURN NIL
 
FUNCTION FuncaoDoCtrlF3()
 
   ? [FuncaoDoCtrlF3()]
 
RETURN NIL
 
FUNCTION FuncaoDoAltF2()
 
   ? [FuncaoDoAltF2()]
 
RETURN NIL
 
FUNCTION  FuncaoDoAltF3()
 
   ? [FuncaoDoAltF3()]
 
RETURN NIL
 
FUNCTION  FuncaoDoF2()
 
   ? [FuncaoDoF2()]
 
RETURN NIL
 
FUNCTION  FuncaoDoF3()
 
   ? [FuncaoDoF3()]
 
RETURN NIL

Não é VK_MENU

If GetKeyState(VK_MENU) // Alt

? "Alt+" // No funciona

end

é VK_ALT

If GetKeyState(VK_ALT) // Alt

? "Alt+" // No funciona

end

Link to comment
Share on other sites

Kapiaba, estou trocando minha versão em Clipper por uma em FW. Para não causar mais problemas do que ja tenho, gostaria de deixar disponível o atalhos

mais usados do sistema em Clipper. Sã o elas.:

Alt+F1, ALt+F2, Alt+F4, Alt+F5, Alt+F6, Alt+F8, ALt+F9, Alt+f11 e Alt+F12. Estas eu já estou colocando com os Ctrl.

Mas ai precisaria dos Alt+V, Alt+R, Alt+T e Alt+E.

Estas ultimas 4, se eu conseguir deixar como estão vai me dar menos dor de cabeça.

Não conheço o ACCELERATOR.. vou dar uma olhada, o Theotokos fez um comentário usando este comando..

Obrigado

Att.

Everton

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...