Access Violation at adress 0057943A

05/09/2015

0

Ola

Estou desenvolvendo um programa que automatiza algumas rotinas, em um site da empresa.

Uso o compontente WebBrowser para localizar algumas "tags" do HTML e com isso simular os Cliques e preenchimentos de Campos do Formulário.

O programa está funcionando até que bem, mas em determinados momentos (de forma aleatória) ele apresenta este erro "Access Violation"

Eu instalei um Programa chamado MadExcept, que serve para criar uma especie de Relatório sobre o momento em que o erro ocorreu, e descobri que acontece dentro de uma função que criei chamada ExisteNoHTML, que serve para verificar se um determinado texto existe dentro do HTML que está no Webbrowser.

O mais estranho é que o programa passa por diversas vezes nesta função, mas só de vez em quando dá erro.

a função é esta:

Function TForm1.ExisteNoHTML(texto: string): Boolean ;
var
 documentoAtivo : variant;
 lString: String;
 i: integer;
begin

  documentoAtivo := WebBrowser1.Document;
  Memo1.Text := documentoAtivo.Body.innerText;

  // TIVE QUE USAR ISTO PARA REMOVER "CARACTERES INDESEJADOS"
  lString := StringReplace(memo1.Text, #9, '',[rfReplaceAll]);
  Memo1.text := lString;

  result := false;
  for i := 0 to Memo1.Lines.Count - 1 do
    begin
      lString := copy(Memo1.Lines.Strings[i],1,Memo1.Lines.Strings[i].Length);
      if Pos(texto,lString) > 0 then   // VERIFICA SE EXISTE O TEXTO
        begin
          result := true;
          break;
        end;
    end;
end;


e a tela do erro apresendata pelo MadExcept é esta:

[img:descricao=TELA DO ERRO]http://arquivo.devmedia.com.br/forum/imagem/434649-20150905-180210.jpg[/img]

Eu acho que o erro tem algo a ver com o a variável do tipo "variant" mas como sou iniciante em Delphi, ainda não consegui descobrir.

Alguem consegue me ajudar ?
Andre Marsola

Andre Marsola

Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar