Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Waldinho

[Resolvido] Imagem da Web

Recommended Posts

Olá, gente.

Preciso carregar uma imagem ou arquivo flash (tipo "banner") de um endereço na web.

Já tenho como verificar se o PC está conectado ou não. Só preciso que, em caso positivo, uma imagem seja carregada de um endereço na web.

Valeu.

 

Olá, gente.

Consegui fazer parte.

Mas está me retornando esta mensagem de erro.

Bitmap image is not valid.

O código está assim:

[font="Courier New"]unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, FileCtrl, StdCtrls, CustomContain, ExtCtrls, xTaskPanel,
  ButtonOffice, TaskButton, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdHTTP, pngimage, WinInet;

const 
  SELDIRHELP = 0; // or SELDIRHELP = 1000 

type
  TForm1 = class(TForm)
    btn1: TButton;
    img1: TImage;
    Label1: TLabel;
    idhtp1: TIdHTTP;
    procedure btn1Click(Sender: TObject);
    function estaConectado: boolean;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.btn1Click(Sender: TObject);
var 
  strm:Tmemorystream; 
begin
   if (estaConectado) then
   begin
      strm:=Tmemorystream.Create;
      try
         idhtp1.Get('http://2.bp.blogspot.com/_esLJAARymfc/SRmn3RSVgPI/AAAAAAAAAMc/IBbF6yddfk4/s320/teste.bmp',strm);
         strm.Position := 0;
         try
            img1.Picture.bitmap.LoadFromStream(strm);
         except
            on E: Exception do
               ShowMessage('Não foi possível carregar a imagem. ' + #13 +
                           E.ClassName + #13 +
                           'Erro: ' + E.Message);
         end;
      finally
         strm.Free;
      end;
   end
   else
      begin
         ShowMessage('Não está conectado.');
      end;
end;

function TForm1.estaConectado: boolean;
var
   flags : DWORD;
begin
// verifica se está conectado a internet usando a API do Windows, é preciso declarar a uses WinInet.
if not InternetGetConnectedState(@flags, 0) then
   result := false
else
   result := true;
end;

end.[/font]
Alguém pode me dar uma ajudar?

Valeu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá, gente.

Consegui. Segue o código do OnClick do botão:

Obs: Utilizei o PNGComponent para importar uma imagem PNG.

var 
  strm:Tmemorystream;
  bmp:TPNGObject;
begin
   if (estaConectado) then // função que verifica se há conexão com a internet.
   begin
      strm:= Tmemorystream.Create;
      bmp := TPNGObject.Create;
      try
         idhtp1.Get('http://upload.wikimedia.org/wikipedia/commons/archive/8/8a/20050801072301!Wikinews-logo.png',strm);
         strm.Position := 0;
         bmp.LoadFromStream(strm);
         try
            img1.Picture.Bitmap.Assign(bmp);
         except
            on E: Exception do
               begin
                  ShowMessage('Não foi possível carregar a imagem. ' + #13 +
                           E.ClassName + #13 +
                           'Erro: ' + E.Message);
               end;
         end;
      finally
         strm.Free;
      end;
   end
   else
      begin
         ShowMessage('Não está conectado.');
      end;
end;

function TForm1.estaConectado: boolean;
var
   flags : DWORD;
begin
// verifica se está conectado a internet usando a API do Windows. É preciso declarar a uses WinInet.
if not InternetGetConnectedState(@flags, 0) then
   result := false
else
   result := true;
end;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.