有沒高手會用delphi顯示天氣啊~~
謝謝了。
謝謝了
謝謝了。
謝謝了
解决方案 »
- Delphi2009的指针操作十分混乱,或者应该算严重的Bug!
- 求教delphi数据库语句问题,HELP!大神来,来就有分!
- cxScheduler添加一个新事件记录之后退出,再进去就没有了,在哪里存储呢?
- 求教:在做毕业论文,课题是图书馆里的图书管理系统!
- 请问怎么样取得字符串中从后面开始的五位字符函数啊??一票独得30分
- 登录窗口与MDI窗口问题
- 帮忙: 如何自动登录
- DBgrid问题:点击dbgrid表的某一列表头,可以使该列变成指定颜色,如何实现?
- 如何取得与控制声音(关于播放器的)
- 一个数据更新的问题......
- 用Delphi 写的SQL Server 的数据库网路版该怎么发布?
- moveto 和 lineto问题
这里有个例子,你参考一下了~~
http://www.smg.gov.mo/c_index.php
網頁上的天氣。
在網上找個JS的調用腳本存在HTML文件,然後在軟件一個位置放一個PANEL,裏面放一個 WebBrowswe載入那個HTML
http://www.2ccc.com/article.asp?articleid=4126
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
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;
别人做的,拿过来给你参考一下了~~红色的部分,改为你要获取你需要网站连接数据
调用getWeatherbyCityName 开实现,该函数右侧有一个ASP.NET的demo,一看就明白了
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.运行