unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Shlobj,Graphics, Controls, Forms, Dialogs, shellapi,DSiWin32, ExtCtrls, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, ComCtrls, HTTPGet, StdCtrls, XPMan, ImgList, WinInet; type TForm1 = class(TForm) HTTPGetFile: THTTPGet; Edit1: TEdit; lv: TListView; Button1: TButton; Image1: TImage; Button3: TButton; Button4: TButton; Timer1: TTimer; Label3: TLabel; XPManifest1: TXPManifest; Image3: TImage; Image4: TImage; Image5: TImage; _images: TImageList; PaneLBTM: TPanel; eeeID: TLabel; Label4: TLabel; Label9: TLabel; Label10: TLabel; Label11: TLabel; iko_0: TImage; Label12: TLabel; AA_0505_Label13: TLabel; eeOnStata: TLabel; Label2: TLabel; Label1: TLabel; procedure HTTPGetFileProgress(Sender: TObject; TotalSize, Readed: Integer); procedure Button1Click(Sender: TObject); procedure FormCreate(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure lvCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); procedure lvCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} //Etats connexion interent function IsConnectedToInternet: Boolean; var dwConnectionTypes: DWORD; begin dwConnectionTypes := INTERNET_CONNECTION_MODEM + INTERNET_CONNECTION_LAN + INTERNET_CONNECTION_PROXY; Result := InternetGetConnectedState(@dwConnectionTypes, 0); end; //Extraction du nom de l'url dans l'Edit1 function ExtractUrlFileName(const AUrl: string): string; var i: Integer; begin i := LastDelimiter('/', AUrl); Result := Copy(AUrl, i + 1, Length(AUrl) - (i)); end; //Convertion de la taille du fichier function BytesToStr(const i64Size: Int64): string; const i64GB = 1024 * 1024 * 1024; i64MB = 1024 * 1024; i64KB = 1024; begin if i64Size div i64GB > 0 then Result := Format('%.2f GB', [i64Size / i64GB]) else if i64Size div i64MB > 0 then Result := Format('%.2f MB', [i64Size / i64MB]) else if i64Size div i64KB > 0 then Result := Format('%.2f KB', [i64Size / i64KB]) else Result := IntToStr(i64Size) + ' Byte(s)'; end; //Extention du fichier function GetFileTypeByName(Name: String): String; var ext: ShortString; begin ext := ExtractFileExt(Name); // Should return the translated types for gui if (ext = '') then begin Result := 'Tous'; Exit; end; if (ext '.mpc') or (ext '.mp4') or (ext = '.aac') or (ext = '.ape') or (ext '.mp3') or (ext '.flac') or (ext = '.mp2') or (ext = '.wav') or (ext '.au') or (ext '.ogg') or (ext = '.wma') then Result := 'Audio'; if (ext '.jpg') or (ext '.jpeg') or (ext = '.bmp') or (ext = '.gif') or (ext '.tif') or (ext '.png') then Result := 'Images'; if (ext '.avi') or (ext '.mpg') or (ext = '.mpeg') or (ext = '.ram') or (ext '.rm') or (ext '.asf') or (ext = '.vob') or (ext = '.divx') or (ext '.vivo') or (ext '.ogm') or (ext = '.mov') then Result := 'Video'; if (ext '.gz') or (ext '.zip') or (ext = '.ace') or (ext = '.rar') then Result := 'Archive'; if (ext '.exe') or (ext '.com') then Result := 'Programme'; if (ext '.ccd') or (ext '.sub') or (ext = '.cue') or (ext = '.bin') or (ext '.iso') or (ext '.nrg') or (ext = '.img') or (ext = '.bwa') or (ext '.bwi') or (ext '.bws') or (ext = '.bwt') or (ext = '.mds') or (ext = '.mdf') then Result := 'CD Images' end; //Télécharger un fichier avec indy procedure DownloadHTTP(const AUrl : string; out DestStream: TStream); begin with TIdHTTP.Create(Application) do try try Get(AUrl,DestStream); except On e : Exception do MessageDlg(Format('Erreur : %s',[e.Message]), mtInformation, [mbOK], 0); end; finally Free; end; end; //Répertoire spéciaux windows function SpecialFolder(Folder: Integer): String; var SFolder : pItemIDList; SpecialPath : Array[0..MAX_PATH] Of Char; begin SHGetSpecialFolderLocation(Form1.Handle, Folder, SFolder); SHGetPathFromIDList(SFolder, SpecialPath); Result := StrPas(SpecialPath); end; //Téléchargement du fichier procedure TForm1.HTTPGetFileProgress(Sender: TObject; TotalSize, Readed: Integer); var Node : integer; i : integer; li : TListitem; s : string; perc : integer; begin //affichage des donnée perc := round( readed / totalsize * 100); try for I:=0 to lv.Items.Count -1 do begin begin begin try LV.Items.Item[i].SubItems[0]:=GetFileTypeByName(ExtractUrlFileName(edit1.text)); LV.Items.Item[i].SubItems[1]:=ExtractUrlFileName(edit1.text); LV.Items.Item[i].SubItems[2]:=BytesToStr(Totalsize); LV.Items.Item[i].SubItems[3]:=BytesToStr(Readed); lV.Items.Item[i].SubItems[4] := IntToStr(Perc); lV.Items.Item[i].SubItems[5] := IntToStr(Perc); finally; end; end; end; end; finally end; end; procedure TForm1.Button1Click(Sender: TObject); var rep : byte; li : TListitem; begin HTTPGetFile.URL := Edit1.Text; HTTPGetFile.FileName := 'C:\Users\eClem\Pictures\CLEM\divers'+'\'+ExtractUrlFileName( edit1.text); HTTPGetFile.GetFile; end; procedure TForm1.FormCreate(Sender: TObject); var li : TListitem; begin li := lv.items.add; li.Caption := ''; li.SubItems.Add(''); li.SubItems.Add(''); li.SubItems.Add(''); li.subitems.add(''); li.subitems.add(''); li.subitems.add(''); _images.Draw (iko_0.Canvas, 0,0, 1); if IsConnectedToInternet then eeOnStata.Caption:='OnLine' else eeOnStata.Caption:='OffLine'; //ImageList1.Draw(StatusBar1.Canvas, Rect.Left + 2, Rect.Top, ImgIndex); end; procedure TForm1.Button4Click(Sender: TObject); begin Application.Terminate; end; procedure TForm1.Timer1Timer(Sender: TObject); begin Label2.Caption:=TimeToStr(Now); end; procedure TForm1.lvCustomDrawItem(Sender: TCustomListView; Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean); begin with Sender as TListView do begin with Canvas do begin if Item.Selected then begin Brush.Color := cLBLUE;//ou rgb(220,220,255); Pen.Style := psDot; Pen.Color := clBLUE; end else begin Pen.Style := psSolid; Pen.Color := Brush.Color; end; end; end; end; procedure TForm1.lvCustomDrawSubItem(Sender: TCustomListView; Item: TListItem; SubItem: Integer; State: TCustomDrawState; var DefaultDraw: Boolean); var v,w,i:integer; R: TRect; bgColor: TColor; begin if (SubItem=5) then begin try DefaultDraw:=False; bgColor := Sender.Canvas.Brush.Color; w := Sender.Column[SubItem].Width; v:=0; if Item.Subitems[5]<>'' then //subitem-1 v := StrToInt(Item.Subitems[5]); R := Item.DisplayRect(drBounds); for i:=0 to SubItem-1 do R.Left := R.Left+Sender.Column[i].Width; R.Right := R.Left+w; Sender.Canvas.Brush.Color := bgColor; Sender.Canvas.FillRect(R); InflateRect(R, -1, 0); r.top:=r.top+2; Sender.Canvas.Brush.Color := clSKYBLUE;//Silver; Sender.Canvas.FillRect(R); Sender.Canvas.Brush.Color:= clBLACK;//Black; Sender.Canvas.FrameRect(R); InflateRect(R, -1, -1); R.Right := R.Left + ((R.Right - R.Left) * v) div 100; Sender.Canvas.Brush.Color := clBLUE;//clNavy; Sender.Canvas.FillRect(R); Sender.Canvas.Brush.Color := bgColor; sender.canvas.Font.Style:=[]; except; end; end; end;
ListViewEx1.Items.Clear; LI := ListViewEx1.Items.Add; LI.Caption := Edit1.text; // Nom du fichier LI := ListViewEx1.Items.Add; LI.Caption := (IntToStr(TotalSize)); // Nom du fichier LI := ListViewEx1.Items.Add; LI.Caption := (IntToStr(Readed)); // Taille téléchargée en cours LI := ListViewEx1.Items.Add; LI.Caption := ('Téléchargement'); // Etat du téléchargement
with ListViewEx1.Items do begin Clear; LI := Add; LI.Caption := Edit1.text; // Nom du fichier LI := Add; LI.Caption := (IntToStr(TotalSize)); // Nom du fichier LI := Add; LI.Caption := (IntToStr(Readed)); // Taille téléchargée en cours LI := Add; LI.Caption := ('Téléchargement'); // Etat du téléchargement end;
with ListViewEx1.Items do begin Clear; Add.Caption := Edit1.text; // Nom du fichier Add.Caption := (IntToStr(TotalSize)); // Nom du fichier Add.Caption := (IntToStr(Readed)); // Taille téléchargée en cours Add.Caption := ('Téléchargement'); // Etat du téléchargement end;
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question