有沒高手會用delphi顯示天氣啊~~
謝謝了。
謝謝了

解决方案 »

  1.   

    http://www.newasp.net/code/delphi/4456.html
    这里有个例子,你参考一下了~~
      

  2.   

    可以找找网上有没免费的WebService
      

  3.   

    我要  截取
    http://www.smg.gov.mo/c_index.php
    網頁上的天氣。
      

  4.   


    在網上找個JS的調用腳本存在HTML文件,然後在軟件一個位置放一個PANEL,裏面放一個 WebBrowswe載入那個HTML
      

  5.   

    在網上找個JS的調用腳本存在HTML文件??什麽意思。。~~
      

  6.   

    从天气信息网站获取天气预报的小程序
    http://www.2ccc.com/article.asp?articleid=4126
      

  7.   

    用WebService较方便
    http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
      

  8.   


    procedure getdatathread.execute;
    var
    d1,d2,d3,min1,min2,min3,max1,max2,max3,n1,n2,n3:string;
    times,provinces,citys:string;
    configsini:tinifile;
    function CenterStr(Src:String;Before,After:String):String;
      var
        Pos1,Pos2:WORD;  begin
        Pos1:=Pos(Before,Src)+Length(Before);
        Pos2:=Pos(After,Src);
        Result:=Copy(Src,Pos1,Pos2-Pos1);
      end;
    begin
    form1.Memo1.Text :='';
    form1.StatusBar1.Panels[0].Text:='';
    configsini:=tinifile.Create(extractfilepath(application.ExeName)+'config.ini');
    provinces:=configsini.ReadString('config','province','');
    citys:=configsini.ReadString('config','city','');
    times:=configsini.ReadString('config','time','');
    configsini.Free;
    form1.Caption:='天气预报——'+provinces+' '+citys+' 天气';
    form1.IdAntiFreeze1.OnlyWhenIdle:=False;//设置使程序有反应.
    try
    //MyStr:=form1.IdHTTP1.Get('http://localhost/t7/data.htm');
    //form1.NMHTTP1.Get('http://www.lonetear.com/weather/getdata.asp?v=1.6&p=江苏&c=苏州');
    //mystr:=form1.NMHTTP1.Body;
    MyStr:=form1.IdHTTP1.Get('http://www.lonetear.com/weather/getdata.asp?v=1.8&p='+provinces+'&c='+citys);
    form1.memo1.Lines.Add(mystr);
    if  FileExists(ExtractFilePath(Application.Exename)+'data.htm') then    //删除掉原来的文件,以免多次写入文件
    deletefile(ExtractFilePath(Application.Exename)+'data.htm');
    form1.memo1.Lines.SaveToFile(ExtractFilePath(Application.Exename)+'data.htm');
    except
    form1.memo1.Lines.LoadFromFile(ExtractFilePath(Application.Exename)+'data.htm');
    form1.StatusBar1.Panels[0].Text:='   载入时网络错误,载入旧记录';
    mystr:=form1.memo1.Text ;
    end;
    begin
    d1:=CenterStr(mystr,'[D1]','[/D1]');
    d2:=CenterStr(mystr,'[D2]','[/D2]');
    d3:=CenterStr(mystr,'[D3]','[/D3]');
    form1.label5.Caption :=d1;
    form1.label6.Caption :=d2;
    form1.label7.Caption :=d3;
    max1:=CenterStr(mystr,'[MAX1]','[/MAX1]');
    max2:=CenterStr(mystr,'[MAX2]','[/MAX2]');
    max3:=CenterStr(mystr,'[MAX3]','[/MAX3]');
    form1.label8.Caption :=max1+'℃';
    form1.label9.Caption :=max2+'℃';
    form1.label10.Caption :=max3+'℃';
    min1:=CenterStr(mystr,'[MIN1]','[/MIN1]');
    min2:=CenterStr(mystr,'[MIN2]','[/MIN2]');
    min3:=CenterStr(mystr,'[MIN3]','[/MIN3]');
    form1.label11.Caption :=min1+'℃';
    form1.label12.Caption :=min2+'℃';
    form1.label13.Caption :=min3+'℃';
    n1:=CenterStr(mystr,'[M1]','[/M1]');
    n2:=CenterStr(mystr,'[M2]','[/M2]');
    n3:=CenterStr(mystr,'[M3]','[/M3]');
    if (pos('雨',n1)>0 )then
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr1__.jpg')
    else if (pos('晴',n1)>0 )and (pos('转',n1)>0 )and (pos('多云',n1)>0)then
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/wb____.jpg')
    else if (pos('多云',n1)>0) and (pos('阴',n1)>0) then
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bd____.jpg')
    else if (pos('阴',n1)>0 )and (pos('雨',n1)>0) then
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr2__.jpg')
    else if  pos('晴',n1)>0 then
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/so____.jpg')
    else if pos('阴',n1)>0 then
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bd____.jpg')
    else if pos('多云',n1)>0 then
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/ms____(1).jpg')
    else
    form1.Image1.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr2__.jpg');
    //第一天结束
    if (pos('雨',n2)>0 )then
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr1__.jpg')
    else if (pos('晴',n2)>0 )and (pos('转',n2)>0 )and (pos('多云',n2)>0)then
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/wb____.jpg')
    else if (pos('多云',n2)>0) and (pos('阴',n2)>0) then
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bd____.jpg')
    else if (pos('阴',n2)>0 )and (pos('雨',n2)>0) then
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr2__.jpg')
    else if  pos('晴',n2)>0 then
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/so____.jpg')
    else if pos('阴',n2)>0 then
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bd____.jpg')
    else if pos('多云',n2)>0 then
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/ms____(1).jpg')
    else
    form1.Image2.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr2__.jpg');
    //第二天结束
    if (pos('雨',n3)>0 )then
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr1__.jpg')
    else if (pos('晴',n3)>0 )and (pos('转',n3)>0 )and (pos('多云',n3)>0)then
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/wb____.jpg')
    else if (pos('多云',n3)>0) and (pos('阴',n3)>0) then
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bd____.jpg')
    else if (pos('阴',n3)>0 )and (pos('雨',n3)>0) then
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr2__.jpg')
    else if  pos('晴',n3)>0 then
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/so____.jpg')
    else if pos('阴',n3)>0 then
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bd____.jpg')
    else if pos('多云',n3)>0 then
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/ms____(1).jpg')
    else
    form1.Image3.Picture.LoadFromFile(ExtractFilePath(Application.Exename)+'/图标/jpg/bdr2__.jpg');
    //第三天结束
    form1.Image1.Hint:=n1;
    form1.Image2.Hint:=n2;
    form1.Image3.Hint:=n3;
    end;
    self.FreeOnTerminate :=true;
     form1.Timer1.Interval:=strtocard(inttostr(strtoint(times)*60000));
    end;
    别人做的,拿过来给你参考一下了~~红色的部分,改为你要获取你需要网站连接数据
      

  9.   


    调用getWeatherbyCityName 开实现,该函数右侧有一个ASP.NET的demo,一看就明白了
      

  10.   

    //以前在.NET下用过,现在用Delphi2009写了一个!1.用WSDL Import导入http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
    2.生成一个VCL工程,向界面添加HTTPRIO(WebService栏),设置好其WSDL、Service、Port
    3.添加按钮
    procedure TForm1.Button1Click(Sender: TObject);
    var
      Wp:WeatherWebServiceSoap;
      AOS:ArrayOfString;
      I:Integer;
    begin
      Wp:=HTTPRIO1 as  WeatherWebServiceSoap;
      AOS:=wp.getWeatherbyCityName('石家庄');//此处写成一个变量
      for I:=Low(AOS) to High(AOS) do
      begin
         showmessage(AOS[I]);
      end;
    end;
    4.运行
      

  11.   

    Wp:=HTTPRIO1 as  WeatherWebServiceSoap;   这个起到什么作用?这个在BCB 2010中 怎么表示?