Página 1 de 1

Browser em um tablet.

Enviado: 27 Nov 2015 12:04
por rbonotto
Boa tarde pessoal.

Colocamos em um tablet com um aplicativo que acessa a area de trabalho de um servidor.

Fiz uma adaptação no programa para usar somente o mouse; no PC ficou nota 10 mas no
tablet apresentou um problema só, mas um problemão.

No dbedit() coloquei na função que o controla o seguinte código:

Código: Selecionar todos

IF M_DE = 0
   IF LASTKEY() == 1002
      RETURN(DE_ABORT)
   END
END

IF M_DE = DE_EXCEPT

   IF LASTKEY() == 1014
       *** RODA DO MOUSE PARA CIMA
      SKIP -1
      RETURN(2)
   END

   IF LASTKEY() == 1015
      *** RODA DO MOUSE PARA BAIXO
      SKIP +1
      RETURN(2)
   END
END
No PC rodando a roda do mouse ele sobe e desce, mas no tablet não...e o engraçado é que o LASTKEY() 1002 ele funcionou.
Alguém teria uma idéia de como fazer para o browswer subir e descer ?

Abraços,

Browser em um tablet.

Enviado: 27 Nov 2015 14:37
por rochinha
Amiguinhos,

Os GESTURES como são conhecidos os movimentos feitos com os dedos nas telas não funcionarão com o acesso remoto pois o mesmo não foi adaptado para emitir estes movimentos para as telas remotas.

É bem provável que o Windows 10 possa ter em seu aplicativo de acesso remotos o reconhecimento destes movimentos.

Enquanto isto não acontece, acrescente ao lado dos browses dois botões largos e compridos que simulem a seta-para-cima e seta-para-baixo e implemente os movimentos ao toque deles.

Browser em um tablet.

Enviado: 27 Nov 2015 18:26
por rbonotto
Boas Rochina.

Pensei em fazer isto, mas o dbedit() trabalha com inkey(), como poderia adicionar um botão ? teria um começo de caminho para isto ?

Usando harbour no modo console.

Browser em um tablet.

Enviado: 28 Nov 2015 03:07
por rochinha
Amiguinhos,

rbonotto, não me atentei para o fato de estar rodando em modo console, mas se voce estiver usando alguma biblioteca que permita o uso de mouse, tenho certeza que conseguirá este recurso.

Defina duas áreas, retangulos que atuarão como botões e quando o mouse for pressionado nesta área, faça o inkey/movimento no browse.

Browser em um tablet.

Enviado: 28 Nov 2015 13:32
por rbonotto
Boas Rochinha.

Ai acho que pode dar certo....

Mas me desculpe, é que realmente é a primeira vez que tento fazer isto, e ainda por cima
com a pressão do cliente; se pudesse me ajudar de como que é defino a posição do clique do mouse e passo para o inkey() ajudaria muito mesmo.

Browser em um tablet.

Enviado: 28 Nov 2015 13:33
por frazato
boa tarde! e possível VC colocar a imagem da tela pra mim ter um ideia de como fica e qual programa VC usar no tablet pra acesso.

Frazato

Browser em um tablet.

Enviado: 28 Nov 2015 14:10
por rbonotto
O programa que faz o link do PC com o tablet vou pedir para o técnico.

Algumas imagens:

Imagem

Imagem

Imagem

Browser em um tablet.

Enviado: 28 Nov 2015 17:33
por frazato
muito obrigado! eu uso gtwvw com xharbour vou tentar fazer algo no sentido com um módulo de pedido que uso hj. assim q tiver o nome do programa me envie, arrumei um motivo pra comprar um tablet. RSS

Browser em um tablet.

Enviado: 28 Nov 2015 18:09
por rochinha
Amiguinhos,

Frazato,
Aroveita esta oferta enquanto ainda estiver ativa, R$ 159,90.

rbonotto,
Você diz que colocou no tablet um aplicativo que acessa a Área Remota, que aplicativo é esse. Se não for o Microsoft Remote Desktop, provavelmente voce não terá o recurso do mouse a contento.

Inclusive, por sua aplicação ser console ela deve prover uso do mouse nativo, ou seja, a gtwvw deve prover isto, já que se funciona no PC no tablet o efeito será o mesmo pois o tablet irá simular os toques nas áreas da tela como cliques do mouse.

Browser em um tablet.

Enviado: 28 Nov 2015 18:34
por rbonotto
Obrigado pela atenção pessoal.

O técnico me passou agora que o aplicativo é o 2xcliente.
Pedi para ele ver o Microsoft Remote Desktop.

Na verdade o toque está funcionando ok, o que não consigo fazer é o browser descer os itens quando eles ocupam mais do que a tela.
Se houver uma maneira de fazer os SKIP funcionarem com toques já estaria resolvido.

Browser em um tablet.

Enviado: 28 Nov 2015 19:14
por rochinha
Amiguinhos,

rbonotto
O Gesture de pegar-e-arrastar com os dedos, poderia ser simulado por sua aplicação desde que ela conseguisse entender que o momento que o dedo parou em um ponto da tela retornasse um MouseKeyDown e ao movimentar para cima ou para baixo retornasse um MouseGoUp ou MouseGoDown. Estes nomes são ilustrativos.

Exemplo:

Código: Selecionar todos

METHOD MouseAtHeader( nRow, nCol ) CLASS TXBrowse
       return ( ::MouseColPos( nCol ) > 0 .and. nRow < ::HeaderHeight() )

METHOD MouseAtFooter( nRow, nCol ) CLASS TXBrowse
       return ( ::MouseColPos( nCol ) > 0 .and. nRow > ( ::BrwHeight() - ::FooterHeight() ) )
Estas funções do XBrowse verificam se o mouse está posicionado no cabecalho ou rodapé do mesmo. Veja que as funções de retorno se baseiam em valores não fixos, pois depende da posição que o browse está, seu tamanho, etc.

Já nesta função:

Código: Selecionar todos

METHOD MouseRowPos( nRow ) CLASS TXBrowse
   local nRowPos, nTmp
   if nRow <= ::HeaderHeight()
      return 0
   endif
   nTmp    := nRow - ::HeaderHeight()
   nRowPos := Int( nTmp / ::nRowHeight ) + 1
   if nRowPos > ::nDataRows
      nRowPos := 0
   endif
return nRowPos
Verifica e retorna a posição em linha do mouse sobre o browse. Neste caso ele se baseia nas coordenadas do retangulo que o browse está visível.

Veja bem, para que o gesture de arrastar dentro do browse só deverá funcionar se no PC o seu aplicativo tiver o mesmo comportamento, ou seja, se no PC, quando voce pousar o mouse dentro do browse e arrastar para cima e para baixo, o browse se move, voce conseguirá este mesmo efeito pelo tablet.

Browser em um tablet.

Enviado: 11 Fev 2016 17:34
por rbonotto
Boas, pegando um pouco de tudo aqui no forum montei este sample:

http://www.4shared.com/rar/wAkwT0gXba/prog.html?

A única coisa que não consegui fazer é colocar um GET e um botão para limpar ( clear gets ), alguém saberia como poderia fazer ?

Fiz assim:

Código: Selecionar todos

***************************************
FUNCTION getobsitem(QDIVZ)
***************************************
LOCAL tElObsv := SAVESCREEN()
WHILE .T.
   VLMouseOn()
   aWSt     := WaitState()
   oObsiTem := SPACE(25)

   tela(08,15,12,65)
   @ 09,17 SAY item->produto
   @ 10,17 SAY 'OBSERVACOES.:' GET oObsiTem PICT('@!')
   cur(1); READ; cur(0)

   IF aWSt:wsType == WAIT_KEYPRESS
      IF LASTKEY() == 27
         CLEAR GETS
      END
   END

   IF aWSt:wsType == WAIT_MOUSEDOWN .AND.;
      aWSt:wsRow >= 24 .AND. aWSt:wsRow <= 25 .AND.;
      aWSt:wsCol >= 00 .AND. aWSt:wsCol <= 80
      CLEAR GETS
      * sim
      EXIT

   END

   EXIT
END
Não funcionou nem com WAIT_KEYPRESS nem com o WAIT_MOUSEDOWN