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. |
![]() |
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 DelphiQuantidade 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 DelphiQuantidade 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 DelphiQuantidade 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 |
![]() 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 |
![]() 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 |