Dica : Visualizando HTML no Componente Memo
By tresloukadu
Nesta dica vamos ver como acessar um website através do Delphi e exibir o código HTML do mesmo, no componente TMemo. Para este exemplo está sendo utlizado o componente TWebBrowser que vai acessar o website e o código fonte em si. É possível fazer muitas coisas interessantes com o TWebBrowser até mesmo criar um navegador de Internet. Um detalhe adicional é que o componente TWebBrowser é baseado no Internet Explorer e a sua documentação está no site de desenvolvedores da Microsoft no seguinte endereço: url20.ca/z1979 vale a pena dar uma conferida e consultar tudo que é possível fazer.
Vamos ao código do nosso visualizador de HTML:
{
Sobre: Código de exemplo para mostrar como exibir e ler um documento HTML
de um website.
Autor: Dicas Delphi
Data: 19/12/2008
}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, OleCtrls, SHDocVw, ComCtrls;
type
TfrmMain = class(TForm)
WebBrowser1: TWebBrowser; //utilizando o componente TWebBrowser
MemoCodFonte: TMemo;
Panel1: TPanel;
edtUrl: TEdit;
btnNavegar: TButton;
btnExibirCod: TButton;
Label1: TLabel;
procedure btnNavegarClick(Sender: TObject);
procedure btnExibirCodClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
{Adiciona o código fonte de um website no memo}
//===================================================================
procedure TfrmMain.btnExibirCodClick(Sender: TObject);
//===================================================================
var
documentoAtivo : variant;
begin
//Acessando a interface do site aberto
documentoAtivo := WebBrowser1.Document;
//Adicionando o código HTML ao MEMO
MemoCodFonte.text := documentoAtivo.Body.OuterHTML;
end;
{Acessa o website}
//==================================================================
procedure TfrmMain.btnNavegarClick(Sender: TObject);
//==================================================================
begin
//Verifica se foi informado alguma URL
if edtUrl.Text <> ” then
begin
//Acessando o website informado no edit
WebBrowser1.Navigate(edtUrl.Text);
//Colocando a ampulheta do windows só pra saber que está executando o
//programa
Screen.Cursor := crHourGlass;
//Enquanto o site não é carregado totalmente fica no loop até o estado
//do ReadyState for ‘completo’
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
Sleep(0);
end;
//Site foi carregado, tira a ampulheta e coloca a seta no mouse novamente
Screen.Cursor := crDefault;
//Site foi carregado, libera o botão de vizualizar o código fonte
btnExibirCod.Enabled := true;
end
//Se nenhuma URL for informada dá uma mensage de erro, e dá focus no edit
else
begin
//Exbindo a mensagem
ShowMessage(‘Entre com uma URL’);
//Setando o focus no edit
edtUrl.SetFocus;
end;
end;
end.
A parte que estamos acessando o código do website e adicionando ano componente TMemo é na seguinte linha:
O código deste exemplo como sempre foi simplicado, mas existem coisas interessantes como no seguinte trecho:
//do ReadyState for ‘completo’
while WebBrowser1.ReadyState <> READYSTATE_COMPLETE do
begin
Application.ProcessMessages;
Sleep(0);
end;
Onde é dado um loop para verificar se o website foi totalmente carregado ou se ele está ainda fazendo ainda o download do conteúdo.
Segue o pacote com o executável e o código fonte para baixar:
http://www.dicasdelphi.com.br/wp-content/uploads/2008/12/vercodigosite.rar
URL reduzida desta dica: url20.ca/m1986
t+
Componente , Delphi , HTML , TMemo , TWebBrowser 


dezembro 19th, 2008
Renan Lazzaretti
janeiro 30th, 2009
Parabens pelo site, otimas informacoes…
tresloukadu
janeiro 30th, 2009
obrigado
Isso só dá mais motivos pra continuar. E se você tiver alguma dúvida e eu puder ajudar fique a vontade em perguntar…. t+
Luis Gustavo
março 6th, 2009
Parabéns, simples, porém direto no ponto, obrigado estava precisando desta informação!!
Ricardo
abril 9th, 2009
Muito legal o exemplo, bem prático. Mas gostaria de saber se tem como puxar o conteúdo apresentado no site, sem o código fonte. Obrigado.
tresloukadu
abril 9th, 2009
Olá, o que você se refere em “puxar” ? Você deseja salvar o site no seu computador? Ou deseja salvar somente as imagens? Você pode especificar mais a sua pergunta?
t+
Ricardo
abril 9th, 2009
@tresloukadu
Olá, quero fazer a mesma função do código fonte acima para dentro de um memo, mas só do conteúdo, sem o código html, etc… Desse conteúdo eu pretendo separar linhas específicas para gravar num banco de dados, basicamente é isso. Obrigado.
Cleufas
junho 4th, 2009
Olá, parabens pelo site, muito bom.
Gostaria de saber se eu consigo passar informação para campos de um form web, pelo delphi.
Exemplo:
Preencher usuario e senha de uma tela de login de um sistema web com informações de campos Edit do Delphi.
Se puder me dar uma luz, fico muito agradecido.
Desde já, obrigado!
Jean
agosto 31st, 2011
Olá!
Parabéns pela dica! Como eu poderi fazer para ler um TXT que está em um determinado domínio? A idéia é procurar nesse txt se a chave do sistema ainda é válida.
Valeu!