Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Problemas com o TWebBrowser


JosimarZ

Pergunta

Boa tarde!

Estou encontrando algumas dificuldades para trabalhar com o componente TWebBrowser.

A aplicação possui um FORM com um TPageControl, que por sua vez é repleto de componentes, entre eles o TWebBrowser.

Quando dou um click dentro do TWebBrowser (mesmo esse estando com o DesignMode desabilitado) os botões do mouse passam a não funcionar nos outros componentes, nem mesmo as teclas de atalho funcionam mais, somente o scrool do mouse fica funcionando nos outros componentes.

Quando clico na TPageControl os botões voltam a funcionar normalmente.

O que pode ser que está a acontecer ??

Obrigado!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
Quando clico na TPageControl os botões voltam a funcionar normalmente.

realmente é assim que deve funcionar ... ao clicar numa pagina do pagecontrol voce habilita todos os componentes que fazem parte desta pagina

exemplo

// se a pagina 2 ( PageControl1 neste caso tem o numero 1 ) estiver habilitada ele vai limpar o edit1 e jogar o foco nele, caso contrario, ele joga o foco no BitBtn1 que esta em outra pagina.

if PageControl1.ActivePageIndex = 1 then
      begin
         edit1.Clear;
         edit1.SetFocus;
      end
   else
      BitBtn1.SetFocus;

abraço

Link para o comentário
Compartilhar em outros sites

  • 0

Olá!!

Quanto ao problema mencionado anteriormente encontrei a solução. Eis o código :

(*Evento é chamado quando o usuário clica no WebBrowser*)
procedure TfOcorrencias.WebBrowser1CommandStateChange(ASender: TObject;
  Command: Integer; Enable: WordBool);
var
  Doc: IHTMLDocument2;
  Sel: IHTMLSelectionObject;
begin
  (*Se o chamador do evento não é um um TWebBrowser então retorna*)
  if not Assigned(ASender) or not (ASender is TWebBrowser) then
    Exit;
  (*Se o comando não é um click do mouse então cai fora*)
  if TOleEnum(Command) <> CSC_UPDATECOMMANDS then
    Exit;
  (*Checa se o objeto não é nulo*)
  Doc := WebBrowser1.Document as IHTMLDocument2;
  if not Assigned(Doc) then
    Exit;
  (*Pega a referência para a seleção corrente*)
  Sel := Doc.selection as IHTMLSelectionObject;
  (*Pergunta se clicou dentro do TWebBrowser*)
  if Assigned(Sel) then
  begin
    (*Se clicou dentro do WebBrowser eu determino o componente TPageControl como ativo*)
    ActiveControl := pageControl;
  end;
end;

Agora tenho outro problema :

Após o usuário fazer alterações no corpo do TWebBrowser, o mesmo pergunta se deseja salvar o conteúdo antes de fechar.

Será que há como desabilitar isso??

Valeu!

Link para o comentário
Compartilhar em outros sites

  • 0

Bom dia!

Encontrei outra solução: Apenas desabilitei o TWebBrowser com

(* ... *)
WebBrowser.Enabled := False;
(* ... *)

Isso evitou que o TWebBrowser perguntasse se desejava salvar as alterações, pois acho que isto é embutido no TWebBrowser.

Pelo menos funcionou!

Obrigado pela atenção!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...