Ciao a tutti,
ho fatto un programma che esegue il download di alcune immagini jpg da internet (fota da una webcam).
tale operazione dura un po di tempo, ed io vorrei inserire un pulsante per stoppare l'esecuzione di tale download.
credo (mi sembra di aver capito) che per implementare questa funzionalità devo uilizzare i delphi thread,...ma non riesco a capire bene il concetto di come fare questa cosa che sembrerebbe semplice...
mi potete indicare qualche esempio...
grazie
questo è il codice che eseguo per effettuare il download..
codice:
procedure TForm1.BtnScaricaFotoClick(Sender: TObject);
var
SourceFile, LocalFile: string;
ora:TdateTime;
SR : TSearchRec;
begin
if (varisnull(cxDateEditDal.editvalue)) or (varisnull(cxDateEditAl.editvalue)) then Abort;
try
screen.Cursor:=crHourGlass;
try
CreateDir(ExtractFilePath(Application.ExeName)+'img')
except
end;
ora:=cxDateEditDal.Date;
while ora<=cxDateEditAl.Date do
begin
SourceFile := 'http://www.villamia.it/webcam/img_'+FormatDateTime('yyyymmdd',ora)+'_'+FormatDateTime('hhnnss',ora)+'_0.jpeg';
LocalFile := ExtractFilePath(Application.ExeName)+'img\'+ExtractUrlFileName(SourceFile);
LblFoto.Caption:='Download File...'+SourceFile;
LblFoto.Update;
if not FileExists(LocalFile) then
if URLDownloadToFile(nil, PChar(SourceFile), PChar(LocalFile), 0, nil) = 0 then
begin
try
cxImageFoto.Picture.LoadFromFile(LocalFile);
cxImageFoto.Update;
except
end;
end;
ora:=IncSecond(ora,1);
end;
screen.Cursor:=crDefault;
// ShowMessage('Download eseguito con successo!');
except
screen.Cursor:=crDefault;
// ShowMessage('Download non eseguito!')
end
end;