Página 1 de 1

xHarbour x Gtwvw x Simular tecla ao pressionar botão!

Enviado: 04 Fev 2007 23:22
por carlos_dornelas
Para o Luiz ou quem mais puder me ajudar!!


Caros, estou migrando uma pequena aplicação onde tenho um dbedit() com algumas funcoes acionados pelas teclas F4, f5 e F6. No clipper eu informava essas opcoes no rodapé da tela para orientar o usuário, mas agora com a gtwvw é possível criar botões para que essas funcoes sejam acionadas pelo mouse. Aí está o problema: consigo acionar a mesma função invocada pelo pressionamento da tecla F5, por exemplo, clicando no botao correspondente, mas ao final da rotina não sei como dar o Refresh no dbedit(), o que é feito automaticamente com o uso do Return(0), Return(1) ou Return(2), quando o F5 é acionado pelo teclado. Pensei em utilizar o Keyboard() para simular o pressionamento da tela F5, mas não obtive sucesso. Alguém já fez algo parecido ou tem uma luz?

Desde já, muitissimo obrigado!

Antonio Carlos

function main()

WVW_NoClose(NIL)
WVW_SetAltF4Close(.f.)
WVW_SetCodePage(,255)
setmode(24,79)
wvw_setfont(,"terminal",23)
WVW_SetTitle(NIL,"Teste para acionar funcao no dbedit()")

clear
use teste

*nPBid := wvw_pbCreate(NIL,14,30,15,40, 'F5 Teclas',NIL,{||alert("Ao clicar ne
nPBid := wvw_pbCreate(NIL,14,30,15,40, 'F5 Teclas',NIL,{||teclas(4,-4)})

dbedit(5,20,10,50,,"teclas")


function teclas(modo,ponteiro)
set cursor off
alert(ponteiro)

lk:=lastkey()
if ponteiro=-4
lk:=-4
endif

do case
case modo=1
case modo=2
case modo=3
case modo=4
if lk==27
return(0)
elseif lk==-4
alert('Teclei F5')
endif
endcase

Re: xHarbour x Gtwvw x Simular tecla ao pressionar botão!

Enviado: 05 Fev 2007 09:58
por Luiz
Tente usando setlastkey() antes da chamada da função

Código: Selecionar todos

nPBid := wvw_pbCreate(NIL,14,30,15,40, 'F5 Teclas',NIL,{||SetLastKey(-4), Teclas(4,-4)})