Quase acabando meu gerenciador de download para Windows(Ajuda)

Estou fazendo um gerenciador de download para Windows,só que não estou conseguindo fazer com que o Progressbar carregue a barrinha de 1 até 100(quando chegar a 100 o Label1.caption tem que dizer Donwload Concluído).

Veja como está o código:

procedure TForm1.BitBtn1Click(Sender: TObject);

   var
 URL, Arq : string;
 MyFile: TFileStream;


 begin
If ProgressBar1.Position = ProgressBar1.Min then
Label1.caption := 'Download Não Concluído!'
else
if ProgressBar1.Position =ProgressBar1.Max then
Label1.caption := 'Download concluído!';



 URL := Edit1.Text;
 Arq := ExtractFileName(StringReplace(URL,'/','\',[rfReplaceAll]));
 try
   MyFile := TFileStream.Create('C:\'+Arq, fmCreate);
   IdHTTP1.Get(URL, MyFile); //Faz download de um determinado site
     finally
   MyFile.Free;

end;
end;

end.

Alguém pode me ajudar?

1 Curtida

Isso aqui resolve seu problema:

1 Curtida

Dizem que dá para fazer gerenciador de downloads com o componente SaveDialog,é verdade?

O save dialog serve apenas para indicar a localização onde você quer salvar o arquivo um jeito seguro de usar considerando seu Save Dialog como SaveDialog1 é:

if SaveDialog1.Execute Then
Begin
  //SaveDialog1.FileName representa o nome do arquivo a ser escrito 
End;

Ele é incapaz de baixar arquivos

Tinha feito antes o código certo para carregar o Progressbar1 até o fim, e o Label1 dizer:
Download Concluído:

Agora não lembro o código que digitei,pois vi numa vídeo aula do youtube.

Não sou programador, mas, é realmente necessário doar parte do seu tempo desenvolvendo algo que já existe? Só no Baixaki é possível encontrar uma penca de variedades de softwares desse tipo.
Ah não ser que esteja fazendo como estudo para aprender mais sobre a linguagem.
Espero que o problema tenha sido solucionado e pense sobre o que te disse. Vai que você tem uma ideia revolucionária daqui alguns dias. Ou meses.

As vezes ele sentiu falta de alguma funcionalidade nesse mar de gerenciadores que existem por ai e achou que seria interessante fazer o dele adicionando essa função, alem é claro do aprendizado, para quem estuda uma linguagem sempre é bom se envolver em algum projeto.

Eu estou estudando programação web, ainda nao tenho o suficiente para iniciar meu projeto, mas ja anotei toda a lógica do programa que irei desenvolver.

2 Curtidas

Queria dizer as vocês que estou desenvolvendo porque gosto de criar programas para computador,nem que sejam básicos,por que isso mostra o meu trabalho,e também,porque penso que para ser inteligente é preciso se esforçar mentalmente,nem que a pessoa tire nota 5 na prova,pelo menos ela se esforçou e não colou.

2 Curtidas

Conhecimento, treinar habilidades, fazer algo diferente… os motivos são infinitos

2 Curtidas

Falou tudo, melhor jeito de aprender ou melhorar em algo e por a mão na massa e nao apenas ler teorias mirabolantes.

Meus parabéns!

Minha logica está certa,mas estou pecando nos detalhes,veja:

for i:=1 to Max do
ProgressBar1.Min:=i;

If ProgressBar1.Min then
Label1.Caption:=‘Download Concluído’
else

Label1.Caption := ‘Download Não Concluído!’

Nem tanto:

Assim o resultado sempre será “Download Concluído”, porquê você não está pegado o progresso do download está simplesmente contando de 1 ao tamanho do download esse trecho diz:

para a variável `i` começando do 1 até o valor da variável `Max` faça
    ProgressBar1.Min igual a variável `i`

Ele sempre vai ter o mesmo resultado independente da situação, dá uma olhada no link que eu mandei

1 Curtida

Concordo com o @Grimpop no sentido de que pode ter sentido falta de algo ou só para aprendizado. alem do mais por exemplo existeir mais não é o problema se n por exemplo existe o telegram pra q existiria entao o whatsapp e assim vai. kk

Já terminei meu gerenciador(Pegador De Download,assim apelidei),mas o código fonte só vou postar amanhã,agora vou dormir,fiz no Delphi 7.

Coloque suporte a links do XVideos e suporte a Linux também. ‘-’

Tá aqui o código fonte:

unit Unit1Downloads;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdHTTP, ComCtrls, ExtCtrls, ExtDlgs;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    IdHTTP1: TIdHTTP;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    ProgressBar1: TProgressBar;
    Timer1: TTimer;
    procedure BitBtn1Click(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
    
    
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}




procedure TForm1.BitBtn1Click(Sender: TObject);
   var
 URL, Arq : string;
 MyFile: TFileStream;


Begin

 URL := Edit1.Text;
 Arq := ExtractFileName(StringReplace(URL,'/','\',[rfReplaceAll]));
 try
 MyFile := TFileStream.Create('C:\'+Arq, fmCreate);
 IdHTTP1.Get(URL, MyFile); //No seu exemplo só pode fazer download de um determinado site
 Timer1.Enabled:=True;

 Finally
     MyFile.Free;



end;
 
end;
procedure TForm1.Timer1Timer(Sender: TObject);
      begin

      If ProgressBar1.Position = ProgressBar1.Max then
Label1.caption := 'Download Concluído!'
else
Label1.caption := 'Download Não concluído!';
   ProgressBar1.Position :=ProgressBar1.Position +1;


  end;
end.

O Código foi o mesmo que fiz ontem,só que tá dando o seguinte erro:
Variable ‘MyFile’ might not have been initialized

Ontem quando tinha feito o programa não dava esse erro,agora refiz e dá esse erro acima.