Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3105 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Estamos exibindo o espelho do cupom fiscal em um componente webbrowser.

Ocorre que a barra de rolagem não se posiciona até o último item, quando é inserido muitos itens ela fica um pouco antes do final, o que faz com que cerca de 2 a 3 ultimos itens do cupom nao sejam exibidos. Alguns casos ela simplesmente fica no inicio e nao rola.

Alguem ja passou por isso e conseguiu resolver?

  • Moderadores
Postado

Ramon

você usa o codigo abaixo para rolar o espelho do cupom?


procedure WB_ScrollToBottom(WebBrowser: TWebBrowser);

var

  scrollpos: Integer;

  pw: IHTMLWindow2;

  Doc: IHTMLDocument2;

begin

  Doc := WebBrowser.Document as IHTMLDocument2;

  pw := IHTMLWindow2(Doc.ParentWindow);

  scrollpos := pw.Screen.Height;

  pw.scrollBy(0, scrollpos);

end;

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Postado

Ola amigo.

Utilizamos o codigo que voce passou, e realmente ele vai p final (ele rola corretamente), entretanto, em algumas vezes ele vai p topo e faz a rolagem, fica meio estranho....

  • 3 semanas depois ...
  • 1 mês depois ...
Postado

Estou usando o WB_ScrollToBottom e também não faz a rolagem até o ultimo incluído.

ja tentei salvar o texto em arquivo ... mas mesmo assim nao funcionou.

Alguém conseguiu resolver o problema?

Cilleni Caetano

Analista de Sistema

LM Systems

Postado

Comigo aconteceu exatamente isso.

As vezes voltava pro inicio. As vezes mostrava perto do fim.

Testei vários códigos que encontrei na net e nenhum funcionou.

Por fim resolvi trocar por um TMemo, e nos eventos after do acbrecf programei pra mostrar no TMemo o cabeçalho, itens, cancelamento, desconto, etc.

Óbvio que não ficou formatado de forma elegante como em HTML, mas o funciona legal utilizando os eventos.

Att.

Giuliano Naspolini Ribeiro

Automalog Consultoria e Sistemas Ltda

  • Consultores
Postado

Olá Cilleni,

Eu já tive esse problema. Acabei descobrindo que havia um Application.processMessages no meu código que estava atrapalhando a posição do WebBrowser. Comentei ele e resolveu.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Oi EMBarbosa,

Vou verificar nos meus fontes se tem algum Application.processMessages atrapalhando...

Obrigada.

Cilleni Caetano

Analista de Sistema

LM Systems

  • 1 mês depois ...
  • Moderadores
Postado

Boa tarde

já fazia dias que estava com solução para muito dos amigos mas havia esquecido de mencionar

lembrei pois ontem a noite estávamos conversando eu e o régys e lembrei o porque o meu webbrowser funciona certinho

não faço como está no código de exemplo que executa o WB_ScrollToBottom no mesmo procedimento que faz o carregamento do cupom no webbrowser

faço através do evento OnDocumentComplete do WebBrowser, assim ele mesmo terminando o processo de geração do html mas não terminando o seu load

no componente não rolava até o fim

espero ter ajudado a todos

  • Curtir 2
Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • 7 meses depois ...
Postado

Tivemos o mesmo problema, embora tenha tentado várias opções quando o número de item atingia uma determinada quantidade (30 por exemplo) o componente se 'perdia'. Depois de muito tentar resolvemos utilizar o componente TRickView em substituição ao Twebbrowser, que é plenamente utilizável mesmo em sua versão demonstrativa. Funciona muito bem.

www.trichview.com

  • 1 ano depois...
Postado

Olá Regys, estou com o problema que o NeoBiano mencionou, no meu caso o webbrowser rola até o item 48, depois ele não vai mais, peguei o Demo Daruma que tem na pasta projetos do Acbr, compilei no meu delphi aqui que é o XE5, deu a mesma coisa, ja no demo ele foi até o item 26, depois não rolou mais, será que é a versão do Delphi ? algum problema no componente webbrowser dessa versão do delphi.... muito estranho...

Postado

Pessoal só para complementar uma "Solução" que consegui encontrar foi colocar a função WB_ScrollToBottom num timer com intervalo bem curto coloquei 1, para funcionar fiz uma mudança na função também, que é checar se existe documento:

 

  Doc := WebBrowser1.Document as IHTMLDocument2;
  if Doc <> nil then
  begin
    pw  := IHTMLWindow2(Doc.parentWindow);
    LockWindowUpdate(WebBrowser1.Handle);
    try
      scrollPos := pw.screen.height;
      pw.scrollBy(0, scrollPos);
    finally
      LockWindowUpdate(0);
    end;
  end;
 
para mim aqui funcionou, porém não sei se é a solução mais correta.......
  • Consultores
Postado

 

Pessoal só para complementar uma "Solução" que consegui encontrar foi colocar a função WB_ScrollToBottom num timer com intervalo bem curto coloquei 1,

Eu não aconselharia a fazer isso. Pode sobrecarregar o processador.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado

Então EMBarbosa pensei nisso, mas efetuamos vários testes "estressando" ao máximo as vendas, somente com PDV aberto em um micro, processamento não passou de 20%, isso quando esta passando algum item ou finalizando cupom, depois que para ele fica na casa dos 3%..... efetuando um tratamento devido creio que não tenha esse problema de sobrecarga, mas você teria mais alguma dica sobre o assunto ?

Postado

Rssssss bom eu acho que não me expressei direito, está num timer, porém o mesmo só funciona de fato, quando existe um cupom em andamento e houve alteração no html do webbrowser fora isso ele fica inativado.

  • 1 ano depois...
  • 1 mês depois ...
  • Membros Pro
Postado

Olá, testei as formas dispostas aqui e não consegui uma solução eficiente, quando chega nos 50 itens registrados, ele volta até o item 34, no continuar da passagem, as vezes vai no fim, e outro volta no 34, e ficam se alternando de forma muito estranha, teria outras soluções para esse caso?

  • Curtir 1
  • Este tópico foi criado há 3105 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.