Kiedyś robiłem jakieś badziewie z pogodą. wklejam cały kod, wytnij sobie co sie przyda.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Gif, StdCtrls, wininet, ComCtrls, GIFImage, XPMan;
type
TForm1 = class(TForm)
Gif1: TGif;
ProgressBar1: TProgressBar;
Button1: TButton;
XPManifest1: TXPManifest;
Gif2: TGif;
Label1: TLabel;
Label2: TLabel;
Button2: TButton;
Shape1: TShape;
Shape2: TShape;
procedure Button1Click(Sender: TObject);
procedure pogoda;
procedure Button2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
stop : boolean;
adres, nazwa : string;
implementation
{$R *.dfm}
procedure Tform1.pogoda;
var
hInet,
hURL: HINTERNET;
fSize,
ReadLen,
RestartPos: DWORD;
fBuf: array[1..1024] of byte;
f: file;
Header: string;
begin
RestartPos := 0;
fSize := 0;
if FileExists(nazwa) then
begin
AssignFile(f, nazwa);
Reset(f, 1);
RestartPos := FileSize(F);
Seek(F, FileSize(F));
end
else
begin
AssignFile(f, nazwa);
ReWrite(f, 1);
end;
hInet := InternetOpen('iexplorer',
PRE_CONFIG_INTERNET_ACCESS,
nil,
nil,
0);
Header := 'Accept: */*';
hURL := InternetOpenURL(hInet,
PChar(adres),
pchar(Header),
StrLen(pchar(Header)),
0,
0);
if RestartPos > 0 then
InternetSetFilePointer(hURL,
RestartPos,
nil,
0,
0);
InternetQueryDataAvailable(hURL, fSize, 0, 0);
if RestartPos > 0 then
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := fSize + RestartPos;
ProgressBar1.Position := RestartPos;
end
else
begin
ProgressBar1.Min := 0;
ProgressBar1.Max := fSize + RestartPos;
end;
while (ReadLen <> 0) and (stop = false) do
begin
InternetReadFile(hURL, @fBuf, SizeOf(fBuf), ReadLen);
InternetQueryDataAvailable(hURL, fSize, 0, 0);
ProgressBar1.Position := ProgressBar1.Max - fSize;
BlockWrite(f, fBuf, ReadLen);
Application.ProcessMessages;
end;
stop := false;
InternetCloseHandle(hURL);
InternetCloseHandle(hInet);
CloseFile(f);
ProgressBar1.Position:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
nazwa:='dzis.gif';
adres:='http://www.superexpress.pl/Iso/dzisiaj/Mapki/dzis.gif';
form1.pogoda;
sleep(1000);
gif1.picture.loadfromfile('dzis.gif');
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
nazwa:='jutro.gif';
adres:='http://www.superexpress.pl/Iso/dzisiaj/Mapki/jutro.gif';
form1.pogoda;
gif2.picture.loadfromfile('jutro.gif');
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
button1.OnClick(sender);
button2.OnClick(sender);
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
DeleteFile('dzis.gif');
DeleteFile('jutro.gif');
end;
end.