Você está aqui: Delphi ::: VCL - Visual Component Library ::: TWebBrowser

Como pesquisar e retornar um elemento HTML em um TWebBrowser usando o método getElementById()

Quantidade de visualizações: 15639 vezes
Em algumas situações precisamos pesquisar e retornar um elemento HTML na página carregada em um controle TWebBrowser. Para isso podemos usar o método getElementById(), disponível na interface IHTMLDocument3 (esta interface herda de IDispatch e requer a DLL mshtml.dll e Internet Explorer 5 ou mais recente instalado na máquina cliente).

Veja os códigos para os eventos Click de dois botões. No primeiro botão nós carregamos o documento HTML e no segundo pesquisamos e retornamos o conteúdo do elemento HTML com o id que queremos.

Este é o código para o documento HTML usado neste exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

<html>
<head>
  <title>Acessando documentos HTML usando TWebBrowser</title>
</head>
<body>

<p id="p1">Sou um parágrafo com o id "p1"</p>

</body>
</html>

E aqui está o código Delphi:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button1Click(Sender: TObject);
var
  url: String;
begin
  // vamos carregar o documento HTML
  url := 'pagina.html';

  // vamos acessar a página
  WebBrowser1.Navigate(url);
end;

procedure TForm3.Button2Click(Sender: TObject);
var
  doc: IHTMLDocument3;
  elem: IHTMLElement;
  conteudo: String;
begin
  // uses MSHTML_TLB

  // vamos obter o documento representando a página web
  doc := WebBrowser1.Document as IHTMLDocument3;

  // o documento foi obtido com sucesso
  if doc <> nil then
    begin
      // vamos tentar encontrar o elemento HTML com o id "p1"
      elem := doc.getElementById('p1');

      // o documento HTML foi encontrado?
      if elem <> nil then
        begin
          // vamos exibir o texto do elemento
          conteudo := elem.getAttribute('innerHTML', 0);
          ShowMessage('O conteúdo do elemento é: ' + conteudo);
        end
      else
        begin
          ShowMessage('O elemento HTML com o id informado não foi encontrado.');
        end;
    end
  else
    begin
      ShowMessage('O documento HTML não pôde ser obtido.');
    end;
end;

Note que neste código eu testei se a propriedade Document da classe TWebBrowser é nil antes de prosseguir com o código. O mesmo foi feito com o elemento IHTMLElement. Isso evita os erros de violação de acesso caso a página não tenha sido carregada ou o elemento HTML não tenha sido encontrado.

Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.

Link para compartilhar na Internet ou com seus amigos:

Delphi ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como obter o índice inicial e final de um vetor usando as funções Low() e High() da unit System do Delphi

Quantidade de visualizações: 11844 vezes
Como os índices dos vetores em Delphi, diferente de outras linguagens, nem sempre começam em 0, não podemos deduzir que Length() - 1 retornará o índice final do vetor. Desta forma, podemos usar as funções Low() e High(), ambas presentes na unit System.

A função Low() retorna o índice inicial do vetor, enquanto High() retorna o índice final. Veja:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm3.Button1Click(Sender: TObject);
var
  valores: array[11..20] of Integer;
  inicio, fim: Integer;
begin
  // vamos obter o índice inicial do vetor
  inicio := Low(valores);

  // vamos obter o índice final da vetor
  fim := High(valores);

  // vamos exibir o resultado
  ShowMessage('O índice inicial do vetor é: ' + IntToStr(inicio));
  ShowMessage('O índice final do vetor é: ' + IntToStr(fim));
  ShowMessage('O tamanho do vetor é: ' + IntToStr((fim - inicio) + 1));
end;

Lembre-se desta dica quando precisar percorrer os elementos de um vetor ou uma matriz usando o laço For da linguagem Delphi.


Delphi ::: Dicas & Truques ::: Arquivos e Diretórios

Como escrever em um arquivo texto usando as funções Write() e WriteLn() do Delphi

Quantidade de visualizações: 28499 vezes
Não há como fugir. Cedo ou tarde precisaremos escrever em um arquivo texto usando Delphi. E esta dica foi escrita com o propósito de facilitar esta tarefa.

O primeiro passo para se escrever em um arquivo texto usando Delphi é declarar uma variável do tipo TextFile. Em seguida usamos a procedure AssignFile() para associar a variável TextFile ao arquivo em disco.

Como queremos escrever conteúdo novo no arquivo, a função Rewrite() pode ser usada. Esta função cria o arquivo em disco se este ainda não existir. Se o mesmo existir, ele é excluído e a função cria outro com o mesmo nome. E, para escrever conteúdo no arquivo texto, usamos as funções Write() e WriteLn(). A primeira escreve no arquivo enquanto a segunda escreve no arquivo e adiciona o marcador de quebra de linha.

Veja o exemplo para um melhor entendimento:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
var
  arquivo: TextFile;
begin
  // vamos fazer uma ligação entre a variável arquivo e o
  // arquivo que queremos manipular
  AssignFile(arquivo, 'C:\arquivo de codigos\dados.txt');

  // vamos abrir o arquivo ou criar um novo
  Rewrite(arquivo);

  // vamos escrever no arquivo agora
  WriteLn(arquivo, 'Sou a primeira linha.');
  Write(arquivo, 'Sou a segunda linha.');
  WriteLn(arquivo, ' E lá vem...');
  WriteLn(arquivo, 'A terceira linha');

  // hora de fechar o arquivo
  CloseFile(arquivo);

  // fim
  ShowMessage('Operação realizada com sucesso.');
end;


Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009.


Delphi ::: VCL - Visual Component Library ::: TStringGrid

Como usar o controle TStringGrid em suas aplicações Delphi - O componente TStringGrid do Delphi

Quantidade de visualizações: 19179 vezes
Um objeto da classe TStringGrid representa um controle de grid que pode ser usado em suas aplicações Delphi para simplificar o processo de se lidar com strings e objetos associados a esta. Veja a posição desta classe na hierarquia de classes do Delphi:

System.TObject
  Classes.TPersistent
    Classes.TComponent
      Controls.TControl
        Controls.TWinControl
          Controls.TCustomControl
            Grids.TCustomGrid
              Grids.TCustomDrawGrid
                Grids.TDrawGrid
                  Grids.TStringGrid


Esta classe implementa também as interfaces IInterfaceComponentReference e IInterface.

O uso mais frequente de um controle TStringGrid é quando queremos apresentar um conteúdo texto em um formato tabular. Este controle fornece muitas propriedades para controlar a aparência da grid, assim como eventos e métodos que tiram vantagem da organização tabular da grid ao responder às ações do usuário.

Para adicionar um controle TStringGrid ao seu formulário você só precisa acessar a aba Additional no Tool Palette, clicar no controle e arrastá-lo para a posição desejada no formulário. Por padrão, um controle TStringGrid contém 5 linhas e 5 colunas. Novas linhas e novas colunas podem ser adicionadas por meio das propriedades RowCount e ColCount da classe TCustomGrid.

Cada célula da grid pode ter seu valor definido ou acessado usando-se a propriedade Cells. Veja um trecho de código no qual definimos o conteúdo da célula situada na segunda linha da primeira coluna do TStringGrid:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

procedure TForm1.Button1Click(Sender: TObject);
begin
  // vamos definir o conteúdo da célula na segunda linha
  // da primeira coluna da grid
  StringGrid1.Cells[0, 1] := 'Osmar J. Silva';
end;

Um controle TStringGrid introduz a possibilidade de associar um objeto com cada string na grid. Estes objetos podem encapsular quaisquer informações ou comportamento representado pelas strings apresentadas ao usuário.

Se as strings a serem apresentadas na grid representarem valores de campos dos registros de um conjunto de dados (dataset), devemos usar um TDBGrid em vez de um TStringGrid.


Desafios, Exercícios e Algoritmos Resolvidos de Delphi

Veja mais Dicas e truques de Delphi

Dicas e truques de outras linguagens

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 52 usuários muito felizes estudando em nosso site.