Página 2 de 2

Teclado numerico hwgui220

Enviado: 09 Nov 2017 08:20
por Itamar M. Lins Jr.
Ola!
Estávamos trabalhando com a versão, 217, o Kresin simplesmente deixou ela de lado e colocou a 2.20.
Não, ele não deixou de lado. Está lá na 2.20.
Só criou uma pasta e MOVEU os códigos para lá. Eu uso e somente eu e mais uns poucos, ficamos mandando para ele problemas de compatibilidades com a 2.17 na época quem mandou os problemas foi atendido.
Vc não acompanhou a mudança. Leia o Changelog.txt da Hwgui.

O teclado numérico funciona com qualquer micro aqui.
Uso o browse\combobox... da 2.17 dá uma olhada no \include\hwg_extctrol.ch
As minhas mensagens de problemas estão todas lá no forum dos desenvolvedores, é só se cadastrar lá.

Em 2013, olha o que eu estava perguntando a ele.

Código: Selecionar todos

Itamar M. Lins Jr. Lins writes:
> Hi!
> Will 2.18 recover features of Luis Basso ?

  Yes. It will be very helpful if someone give a list of these features, 
which he use, with a short explanation or a sample prg.

Regards, Alexander.

Código: Selecionar todos

 HButtonEX can be used now. You just need to include the 
hwg_extctrl.lib in your link script and hwg_extctrl.сh header files in 
your sources.
  Check, please, does it work as it should. This would be very helpful, 
if someone add a good test prg to demonstrate it functionality and 
difference from other kinds of buttons.

Regards, Alexander.
Sobre o browse ele me orientou a usar de outra forma, não usei mais o "ON KeyDown", passei a usar o "bOther"

Código: Selecionar todos

   @ 3,80 BrowseEx oBrw DataBase of oDlg Size 690,480 Font oBrwFont STYLE WS_VSCROLL + WS_HSCROLL ;
   On PosChange {||UpGetEstoque(oDlg)} ; 
   ON RIGHTCLICK {|This,nLine,nCol| ClickEsquerdo(This,nLine,nCol,oBrw) } 
   
   oBrw:bOther       := {|oBrw, msg, wParam, lParam| fKeyDown(oBrw, msg, wParam, lParam, oDlg)}    //aqui controla tudo do browse!

   oBrw:ShowSortMark := .F.
   oBrw:ShowMark     := .F.
   oBrw:Anchor       := 15
   oBrw:Themed       := .T.
   oBrw:Alias        := 'eq'
   oBrw:lDisableVScrollPos := .F. 
VEJA o EX no final do browse, porque usa o browse extendido da 2.17

Código: Selecionar todos

      Add columnEx FieldBlock("marcado") to oBrw editable ;
      Header ' ' Type 'L' DEC 0 Length 2 picture 'L' ;
      Justify Line DT_RIGHT  Justify Head DT_CENTER

Código: Selecionar todos

*********************************************************
Static FUNCTION fKeyDown(oBrw, msg, wParam, lParam, oDlg)
*********************************************************
*
*
LOCAL nKEY := hwg_PtrToUlong( wParam ) //wParam
IF msg == WM_KEYDOWN
   If nKey = VK_F1
   
      If hwg_Getkeystate(VK_F1) < 0
          //teclou f1
     endif
   endif
ENDIF
IF msg == WM_CHAR
 ... //aqui pesquisa incremental, funcionando com todas as teclas.
   cPesq += chr(nKey)
   RefoBrw('eq',oBrw,cPesq)
endif
return .t.
Poucos acompanharam a mudança, agora ficaram perdidos no meio do caminho.
Lembre-se das mudanças para unicode, UTF-8 das versões 2.18 para cá. Veja o tanto de "[*] Improved compatibility with 2.17 version."
Está lá no whatsnew! Tem que acompanhar o desenvolvimento. Para depois não ficar perdido.

Código: Selecionar todos

HWGUI 2.19 build 3 ( 08.05.2015 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[+] Rich syntax text editor has been added to utils
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes and improvements

HWGUI 2.19 build 2 ( 27.01.2015 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[*] :Enabled() SETGET method is introduced for all controls (HControl class),
    :isEnabled() has been removed.
[*] :GetValue(), :SetValue() methods was removed and new :Value SETGET method is
    introduced instead for those controls, which may input from the user.
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes

HWGUI 2.19 ( 20.12.2014 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[*] Real Unicode (utf-8) support.
[*] Binary containers added as a crossplatform alternative for resources ( rc files ).
[*] A virtual printer ".buffer" added. It allows to create a print
    metafile and preview it if no one printer is installed
[*] Many improvements in utils ( dbc, debugger, designer, tutorial ).
[*] GTK version: significantly extended, improved compatibility with winapi version.
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes, as usual


HWGUI 2.18 build 2 ( 03.04.2014 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[+] The debugger: array inspector, object inspector, commands support
    has been added.
[+] Duplex printing support added.
[*] The editor and the tutorial are gtk compatible now
[*] Processing of hot keys is implemented via hook procedures in both
    winapi and gtk versions and works for any control now.
    SET KEY GLOBAL command added.
[*] Combobox control can accept now multidimensional arrays.
[*] Improved compatibility with 2.17 version.
[!] Some bug fixes

Saudações,
Itamar M. Lins Jr.

Teclado numerico hwgui220

Enviado: 09 Nov 2017 08:38
por Itamar M. Lins Jr.
Ola!
simplesmente deixou ela de lado e colocou a 2.20.
Para ver como é a coisa. Teve a 2.18xx, 2.19xx, 2.20xx e o pessoal fala que pulou da 1.17 para 2.20.
Tem que se ligar no desenvolvedor, ver na fonte da coisa para não ficar assim perdido. Eu também sou uma ANTA de Pai e Mãe na programação é tudo pelo google translate... mas tem que mostrar a cara lá para o povo nos foruns internacionais, não ficar aqui a mercê de intermediários.
Veja isso:
O cara está perguntando como usar o LetoDb lá no forum xharbour.org no caso ele usa BCC 5.5, olha a resposta!
Hi
much better is use sqlrdd or RDDADS

Regards
Luiz
Tá ou não acabando com a comunidade Open Source ? PQP!!!! Sabe-se lá quanta gente já se foi por causa disso ?
Sabe porque ? ele não diz que o xHarbour não tem MT pronto (Multi tarefa) por isso o LetoDB não é compatível com o xHarbour, escondendo o principal problema...

Saudações,
Itamar M. Lins Jr.

Teclado numerico hwgui220

Enviado: 09 Nov 2017 09:00
por Itamar M. Lins Jr.
Ola!
Nota: Não é para polemizar, mas essa mensagem do Alexander já tem um tempo.
Tem uns 3 meses, mas ele deu uma corrigida mês passado no htime.
Veja bem, ninguém está impedido de consertar os erros da 2.20 em relação as compatibilidades da 2.17.
Mas tem que ver as coisas boas que tem na 2.18, 2.19, 2.20 e não tem na 2.17. Alias eu migrei para 2.18... porque a 2.17 com Harbour ficou muito instável, e o pessoal no Brasil só queria saber de Hwgui com BCC 5.5, xHarbour e SQLRDD ai não deu mesmo, prendendo todo mundo nisso ai... totalmente o inverso do pensamento dos gurus Przemek, e do Viktor Szakats, que são as únicas pessoas que ainda me fazem insistir com o Harbour.

Saudações,
Itamar M. Lins Jr.

Teclado numerico hwgui220

Enviado: 09 Nov 2017 11:19
por asimoes
Itamar,

Comigo a 2.17 com harbour 3.4 e agora com LLVM/CLANG tá funcionando normalmente, sem erros na compilação da lib, aonde está instável ?
Sei que corro o risco, mas nós temos sistemas grandes e não dá pra ficar brincando com isso que já é um risco. Repito: até agora funcionando, sistema legado e que daqui a pouco acaba.

Teclado numerico hwgui220

Enviado: 09 Nov 2017 11:54
por Itamar M. Lins Jr.
Ola!
e não dá pra ficar brincando com isso que já é um risco.
Vc não lembra das msg do browse da 2.17 quando perdia o foco em edição ? A versão da Hwgui que usava com xHarbour, dava pau o tempo todo aqui com meus clientes... ai fui trocando para Harbour... depois Alexander chegou e foi mudando a 2.17... com LetoDB... e sempre o famigerado BCC 5.5...! Tem até os posts do Pavel detonando o XHB... por causa do MT etc...
Foi uma guerra aqui... Até estabilizar.
Só pesquisando para lembrar o erro, mas ninguém sabia o que era. Eu usava GCC com Harbour, porquê queria aprender sobre QT, e sozinho praticamente... enquanto a maioria dos brasileiros usando BCC, por causa do SQLRDD etc, etc... Seguindo o povo(gurus) do Brasil... Ai todos sabem como terminou.
Não sei se era a LIB do LETO o que sei é que consegui atravessar esse oceano, agora com LetoDBf + HB34 + GCC estou mais tranquilo, os erros da Hwgui 2.20 existem mas não estão afetando o funcionamento principal.
Tem que ler o CHANGELOG das correções que houve na Hwgui de lá para cá. Não tem nada a ver com 2.17 como se fosse uma coisa a parte a 2.17 está presente na 2.18, 2.19, 2.10, 2.20...

Saudações,
Itamar M. Lins Jr.

Teclado numerico hwgui220

Enviado: 09 Nov 2017 13:02
por gilbertosilverio
Ola Simoes,

Você consegue gerar a HWGUI 2.17 com a HB34, qual o macete, pois tentei aqui e não consegui.

Qual e a sua versão da 2.17?

Queria fazer um testes, compilar meus fontes com hwgui+hb34+mingw72 e ver no que da, pois compilando com a hwgui220 tenho que mexer em muitas coisas, existe muitas incompatibilidade.

Grato.

Teclado numerico hwgui220

Enviado: 09 Nov 2017 13:44
por asimoes
Gilberto,

Eu baixo os fontes do harbour (3.4 fork) do Git

Compilo com LLVM/CLANG do MSYS2

Depois de gerado o Harbour faço a compilação da HwGui

Estou anexando a minha versão da Hwgui funcionando inclusive activex

Novamente: eu prefiro baixar os fontes do harbour, compilar e depois criar as outras libs hwgui, minigui...

Nota na pasta hwgui tem 2 bats

geramingw1.bat (gera libs individuais)
geramingw2.bat (gera uma unica lib)

Teclado numerico hwgui220

Enviado: 09 Nov 2017 14:41
por gilbertosilverio
Simões,

Consegui gerar a minha hwgui 217 com o teus .BAT e os HBPs da HWGUI

A hwgui 217 que estou usando e de 13/06/2013 enquanto a sua e de 30/05/2013.

Na criação da HWGUI, tive que mudar a hb_oemtoansi para win_oemtoansi, na drawtext.c, mais no resto foi tudo ok.

Rodei um pequeno exemplo que montei aqui para testar na hwgui 217 e na hwgui 220, para tentar ver quais seriam as incompatibilidades, e aparentemente esta funcionando, vou tentar compilar meus fontes de produção e ver no que da...

Pelo menos a rotina de pesquisa que tenho, usando o ONKEY, agora esta rodando corretamente... kkkk

Muito obrigado, pela sua atenção, vou testar e qualquer coisa posto aqui.

Teclado numerico hwgui220

Enviado: 09 Nov 2017 14:49
por asimoes
Gilberto,

No fonte drawtext.c já está com WIN_OEMTOANSI e WIN_ANSITOOEM, não entendi ??? fez ao contrário ?

Teclado numerico hwgui220

Enviado: 09 Nov 2017 15:06
por gilbertosilverio
Simões,

Na que você usa tem, mais na versão que uso aqui,* $Id: Changelog 2076 2013-06-13 15:37:33Z druzus $, tem outras alterações, então, criei as libs pela minha, pra ver como vai ser.

Na sua, vi que tem copias da DIALOG.C, então preferi usar a que tenho, para não ter problemas.

Vou testar, qualquer coisa posto o que achei...

Teclado numerico hwgui220

Enviado: 10 Nov 2017 21:58
por JoséQuintas
Asimões, baixei os fontes que postou.
Vou criar a compilação usando HBP, e uso por HBC, se por acaso interessar.

Teclado numerico hwgui220

Enviado: 10 Nov 2017 23:47
por JoséQuintas
Criei, mas tá junto das outras LIBs.

Aqui faço o seguinte: hbmk.hbc dentro de harbour\bin
mt=yes
gui=yes
strip=yes
compr=yes
libpaths=d:/cdrom/fontes/integra/sefazclass
libpaths=d:/cdrom/fontes/integra/josequintas
libpaths=d:/github/allgui/hmg3
libpaths=d:/github/allgui/hmge
libpaths=d:/github/allgui/hwgui
libpaths=d:/github/allgui/oohg
e o SET_HB_INSTALL_PREFIX

Se quiser só hwgui é hwguiall.hbp e os demais
Se quiser tudo, é all.hbp e tudo... rs

demora uns 4 minutos pra gerar TUDO, então acrescentei -beep só pra ter algum aviso sonoro entre cada hbp.

Desviei pra harbour\addons\hwgui, assim pode ter mais de um Harbour na máquina, e cada Harbour vai ter sua versão de hwgui/outras

Se usar o all.hbp, o resultado é este:
d:\harbour\bin>dir \harbour\addons /s/b
d:\harbour\addons\hmg3
d:\harbour\addons\hmge
d:\harbour\addons\hwgui
d:\harbour\addons\oohg
d:\harbour\addons\hmg3\hmg3_core.hbx
d:\harbour\addons\hmg3\hmg3_crypt.hbx
d:\harbour\addons\hmg3\hmg3_edit.hbx
d:\harbour\addons\hmg3\hmg3_editex.hbx
d:\harbour\addons\hmg3\hmg3_graph.hbx
d:\harbour\addons\hmg3\hmg3_hbvpdf.hbx
d:\harbour\addons\hmg3\hmg3_hfcl.hbx
d:\harbour\addons\hmg3\hmg3_ini.hbx
d:\harbour\addons\hmg3\hmg3_report.hbx
d:\harbour\addons\hmg3\lib
d:\harbour\addons\hmg3\lib\win
d:\harbour\addons\hmg3\lib\win\mingw
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_core.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_crypt.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_edit.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_editex.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_graph.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_hbvpdf.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_hfcl.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_ini.a
d:\harbour\addons\hmg3\lib\win\mingw\libhmg3_report.a
d:\harbour\addons\hmge\hmge_adordd.hbx
d:\harbour\addons\hmge\hmge_bostaurus.hbx
d:\harbour\addons\hmge\hmge_calldll.hbx
d:\harbour\addons\hmge\hmge_core.hbx
d:\harbour\addons\hmge\hmge_hbgdip.hbx
d:\harbour\addons\hmge\hmge_hbmysql.hbx
d:\harbour\addons\hmge\hmge_hbodbc.hbx
d:\harbour\addons\hmge\hmge_hbole.hbx
d:\harbour\addons\hmge\hmge_hbprinter.hbx
d:\harbour\addons\hmge\hmge_hbsqlite3.hbx
d:\harbour\addons\hmge\hmge_hbvpdf.hbx
d:\harbour\addons\hmge\hmge_hbxml.hbx
d:\harbour\addons\hmge\hmge_hbziparc.hbx
d:\harbour\addons\hmge\hmge_miniprint.hbx
d:\harbour\addons\hmge\hmge_propgrid.hbx
d:\harbour\addons\hmge\hmge_propsheet.hbx
d:\harbour\addons\hmge\hmge_pscript.hbx
d:\harbour\addons\hmge\hmge_shell32.hbx
d:\harbour\addons\hmge\hmge_socket.hbx
d:\harbour\addons\hmge\hmge_sqlite3facade.hbx
d:\harbour\addons\hmge\hmge_tmsagent.hbx
d:\harbour\addons\hmge\lib
d:\harbour\addons\hmge\lib\win
d:\harbour\addons\hmge\lib\win\mingw
d:\harbour\addons\hmge\lib\win\mingw\libhmge_adordd.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_bostaurus.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_calldll.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_core.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbgdip.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbmysql.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbodbc.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbole.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbprinter.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbsqlite3.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbvpdf.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbxml.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_hbziparc.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_miniprint.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_propgrid.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_propsheet.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_pscript.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_shell32.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_socket.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_sqlite3facade.a
d:\harbour\addons\hmge\lib\win\mingw\libhmge_tmsagent.a
d:\harbour\addons\hwgui\hwgui_contrib.hbx
d:\harbour\addons\hwgui\hwgui_core.hbx
d:\harbour\addons\hwgui\hwgui_debug.hbx
d:\harbour\addons\hwgui\hwgui_hbactivex.hbx
d:\harbour\addons\hwgui\hwgui_hbxml.hbx
d:\harbour\addons\hwgui\hwgui_procmisc.hbx
d:\harbour\addons\hwgui\lib
d:\harbour\addons\hwgui\lib\win
d:\harbour\addons\hwgui\lib\win\mingw
d:\harbour\addons\hwgui\lib\win\mingw\libhwgui_contrib.a
d:\harbour\addons\hwgui\lib\win\mingw\libhwgui_core.a
d:\harbour\addons\hwgui\lib\win\mingw\libhwgui_debug.a
d:\harbour\addons\hwgui\lib\win\mingw\libhwgui_hbactivex.a
d:\harbour\addons\hwgui\lib\win\mingw\libhwgui_hbxml.a
d:\harbour\addons\hwgui\lib\win\mingw\libhwgui_procmisc.a
d:\harbour\addons\oohg\lib
d:\harbour\addons\oohg\oohg_bostaurus_.hbx
d:\harbour\addons\oohg\oohg_core.hbx
d:\harbour\addons\oohg\oohg_hbprinter.hbx
d:\harbour\addons\oohg\oohg_miniprint.hbx
d:\harbour\addons\oohg\lib\win
d:\harbour\addons\oohg\lib\win\mingw
d:\harbour\addons\oohg\lib\win\mingw\liboohg_bostaurus.a
d:\harbour\addons\oohg\lib\win\mingw\liboohg_core.a
d:\harbour\addons\oohg\lib\win\mingw\liboohg_hbprinter.a
d:\harbour\addons\oohg\lib\win\mingw\liboohg_miniprint.a
Sugestão: não use -INC, pra não correr o risco de misturar LIBs, e pode usar -workdir=c:\temp, assim não deixa .hbmk escondido .

A partir daí, é só brincar com a LIB que quiser.

hbmk2 test hwgui.hbc
hbmk2 *.prg *.c *.rc hmge.hbc

Se quiser só os HBP/HBC da hwgui estão aqui:
https://github.com/JoseQuintas/allgui/tree/master/hwgui

Se quiser brincar com tudo, é só baixar o repositório inteiro.

Nota: não achei os resources da HWGUI, não sei se tem, seria só incluir no HBC.

Teclado numerico hwgui220

Enviado: 11 Nov 2017 00:11
por JoséQuintas
Esqueci de dizer, não sei se vai fazer diferença:

No BAT de compilação da HWGUI tem isto: cflags=-DHWG_USE_POINTER_ITEM
Está bloqueado no seu HBP, mas acrescentei no HBC.
O HBC também é usado pra gerar as LIBs, então isso já acrescenta em todos de uma vez.

Talvez melhor colocar {hblib}cflags=-DHWG_USE_POINTER_ITEM

Isso vai acrescentar somente se for geração de LIB, e não nas compilações normais.
Mas não faço idéia se vai fazer diferença.... rs
É só pra avisar.

Teclado numerico hwgui220

Enviado: 27 Nov 2017 11:40
por Fernando queiroz
Seguindo as dicas do titular do post acrecentei mais algumas teclas que preciso na consulta como ASTERISCO [ * ] e PONTO [ . ]


IF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ "34|33|37|38|39|40|20|16"
cProgressKey:=""
ThisBRW:oLabel4:settext(cProgressKey)
RETURN .T.
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [96]
nKeyPress := 48
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [97]
nKeyPress := 49
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [98]
nKeyPress := 50
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [99]
nKeyPress := 51
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [100]
nKeyPress := 52
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [101]
nKeyPress := 53
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [102]
nKeyPress := 54
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [103]
nKeyPress := 55
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [104]
nKeyPress := 56
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [105]
nKeyPress := 57
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [106]
nKeyPress := 42
ELSEIF nKeyPress # 8 .AND. AllTrim(Str(nKeyPress)) $ [190]
nKeyPress := 46

ELSEIF nKeyPress == Asc("8") .AND. hwg_isCtrlShift( .F.,.T. )
nKeyPress := 42

ENDIF

Teclado numerico hwgui220

Enviado: 27 Nov 2017 13:08
por JoséQuintas
Só três sugestões:
- alterar a ordem do elseif
- "talvez" criar função separada, mais fácil depois ou se precisar usar em outros lugares
- agrupar conversão

de:

Código: Selecionar todos

if keypress # 8 .AND. .....
elseif keypress # 8 .AND. .....
elseif keypress # 8 .AND. .....
elseif keypress # 8 .AND. .....
elseif keypress # 8 .AND. .....
elseif keypress # 8 .AND. .....
elseif keypress # 8 .AND. .....
para:

Código: Selecionar todos

if keypress == 8 ...
elseif  ...
elseif ...
elseif ...
E talvez uma função genérica:

Código: Selecionar todos

FUNCTION KeyFromWindowsToHarbour( nKey )
DO CASE
CASE nkey == 96; nkey := 48
CASE nkey == 97; nKey := 49
CASE nKey == 98; nKey := 50
ENDCASE
RETURN nKey
É até bom ver se no Harbour já não tem algo pronto pra isso.

Olhando seu fonte, talvez também dê até pra agrupar: por exemplo os números, vão de 48 a 57, que em windows vão de 96 a 105

Código: Selecionar todos

CASE nKey >= 96 .AND. nKey <= 105 ;  nKey -= 48