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+



dezembro 19th, 2008