想做一個從網站源代碼提取圖片地址,然后進行瀏覽的軟體;可是不知怎么實作上一張、下一張的效果,具體代碼如下:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, ExtCtrls, GIFImage;
const
num=35;
type
TForm1 = class(TForm)
IdHTTP1: TIdHTTP;
Image1: TImage;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
IMS:TMemoryStream;
i,j:integer;
k:integer=35;//一共提取了35張圖片地址
tmp,url:String;
Gif: TGIFImage;
function SplitPicUrl(LeftStr,RightStr,Data: string):TStringList;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
IdHTTP1:=TIdHTTP.Create(nil);
tmp:=IdHTTP1.Get('http://www.weather.com.cn/html/radar/JC_RADAR_AZ9398_JB.shtml');
url:=SplitPicUrl('<option value="','" selected="selected">',tmp)[k];//讀取第k+1個圖片的地址并寫入url中
IMS:=TMemoryStream.Create;
IdHTTP1.Get(url,IMS);
Image1.Picture.Assign(nil);
Gif:= TGIFImage.Create;
IMS.Position:=0;
Gif.LoadFromStream(IMS);
Image1.Picture.Assign(Gif);
IMS.Free;
Gif.Free;
IdHTTP1.Free;
end;
function SplitPicUrl(LeftStr,RightStr,Data: string):TStringList;//將Data中LeftStr與RightStr之間的字符全部截取出來
var
i,j,k: integer;
tmp: string;
begin
result := TStringList.Create;
for k:=0 to 35 do//提取了35個圖片地址
begin
i:=pos(LeftStr, Data);
j:=pos(RightStr,Data);
tmp:=copy(Data, i + Length(LeftStr), j - i- Length(LeftStr));
result.Add(tmp);
Delete(Data, 1, j - 1 + Length(RightStr));
end;
end;
end.
程式目前可以顯示出網站最新的圖片,
但想添加兩個按鈕實作上一張、下一張以及實時更新最新圖片,就捉急了!
小白一枚,網上各種搜也找不到解決,只能寄希望于各位大神了!!拜謝!
uj5u.com熱心網友回復:
何必這么麻煩,有現成的控制元件,用EmbeddedWB就可以很方便的保存網頁上所有的圖片了。轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/130915.html
標籤:語言基礎/算法/系統設計
上一篇:如何生成組合查詢條件
