Mam następującą procedurę pobierającą pliki z internetu. Zauważyłem jednak iż kompilator zgłasza iż niektóre ze zmiennych w procedurze Download nie zostały użyte...
uses WinInet;
procedure TForm.Download(const URL: String; FileName: String);
var
{Bufor zawierający ściągnięty fragment pliku}
Buffer : array[1..1024] of Byte;
hSession, hURL : HINTERNET;
dwRead, dwBufLen, dwIndex, dwSize : DWORD;
F : File;
pBuf : Pointer;
TotalRead : Integer;
begin
hSession := InternetOpen('Fast Download', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
Application.ProcessMessages;
try
{Otwarcie podanego adresu URL}
hURL := InternetOpenURL(hSession, PChar(URL), nil, 0, 0, 0);
Application.ProcessMessages;
dwBufLen := 1024;
dwIndex := 0;
GetMem(pBuf, dwBufLen);
{Pobranie informacji na temat wielkości pliku}
HttpQueryInfo(hURL, HTTP_QUERY_CONTENT_LENGTH, pBuf, dwBufLen, dwIndex);
dwSize := StrToInt(StrPas(pBuf));
ProgressBar.Max := (dwSize div 1024);
FreeMem(pBuf, dwBufLen);
try
AssignFile(F, FileName);
try
Rewrite(F, 1);
repeat
InternetReadFile(hURL, @Buffer, SizeOf(Buffer), dwRead);
BlockWrite(F, Buffer, dwRead);
TotalRead := TotalRead + dwRead;
Application.ProcessMessages;
Label_Postep.Caption := 'Pobrano ' + IntToStr(TotalRead div 1024) + ' kB z ' + IntToStr(dwSize div 1024) + ' kB';
ProgressBar.Position := TotalRead div 1024; // 1
until dwRead = 0;
finally
CloseFile(F);
end;
finally
InternetCloseHandle(hSession);
end;
finally
InternetCloseHandle(hURL); // 2
end;
// pobrano...
end;
Pola // liczba wskazują gdzie kompilator odwołuje się:
[Warning] Code_File.pas(1455): Łączone znaki i nie-znaki typów - należy rozszerzyć oba argumenty // 1
[Warning] Code_File.pas(1458): Zmienna 'TotalRead' nigdy nie została użyta // 1
[Warning] Code_File.pas(1468): Zmienna 'hURL' nigdy nie została użyta // 2
Dlaczego jest źle i jak to poprawić ? [soczek] Dziękuję