Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.02.2010, 17:50   #11
designer999
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 187
По умолчанию

вот ниже сделал но в чём ошибка не знаю ?
Вложения
Тип файла: rar pro.rar (6.4 Кб, 8 просмотров)
designer999 вне форума Ответить с цитированием
Старый 22.02.2010, 17:56   #12
Delfiec
Новичок
Джуниор
 
Регистрация: 22.02.2010
Сообщений: 1
По умолчанию

Цитата:
Сообщение от designer999 Посмотреть сообщение
вот нашол, но
1.как сделать так что бы можно было выбрать путь для сохранения?
и 2.как отобразить ход скачивания?
помогите плиз

1. Путь выбрать можно через TOpendialog,после этого его значение кидаешь в GetInetFile(const fileURL, FileName: String): boolean;
Там будет что-то form1.Opendialog1.Text.
form1 указать обязательно это на какой форме есть компонент.
2.Если отобразить через progressbar то кидаешь на форму сам компонент
и в коде пишешь.
PHP код:
PChar(fileURL),nil,0,0,0);
try
.......{--
Найдем размер файла--}
if 
not HttpQueryInfohURLHTTP_QUERY_CONTENT_LENGTH, @lpBufBufferLenPDWORDnil )^ ) then
      FileSize 
:= 1
   
else
      
FileSize:=round(StrToIntlpBuf)/100);
.........
........
repeat
InternetReadFile
(hURL, @BufferSizeOf(Buffer), BufferLen);
BlockWrite(fBufferBufferLen)
until BufferLen 0;

{--
Методом деления измеряем длину шага.--}
form1.ProgressBar1.Position := round(fsize/filesize);
CloseFile(f);
Result:=True;
finally 
Delfiec вне форума Ответить с цитированием
Старый 22.02.2010, 18:50   #13
FanAnnGeL
 
Регистрация: 16.02.2010
Сообщений: 4
Радость

Тоже пытался реализовать но как то не получакеться сделать
PHP код:
unit Unit1;

interface

uses
  Windows
MessagesSysUtilsVariantsClassesGraphicsControlsForms,
  
Dialogs,URLMonShellApiComCtrlsStdCtrls;



type
  TForm1 
= class(TForm)
    
Button1TButton;
    
ProgressBar1TProgressBar;


    
procedure Button1Click(SenderTObject);
  private
    { Private 
declarations }
  public


    { Public 
declarations }
  
end;

var
  
Form1TForm1;

implementation

{$R *.dfm}



function 
DownloadFile(SourceFileDestFilestring): Boolean
begin 
  
try 
    
Result := UrlDownloadToFile(nilPChar(SourceFile), PChar(DestFile), 0nil) = 0;
  
except
    Result 
:= False
  
end
end

procedure TForm1.Button1Click(SenderTObject); 
const 
  
// URL Location
  
SourceFile 'http://name.rar';
  
// Where to save the file 
  
DestFile 'C:\name.rar';
begin
  
if DownloadFile(SourceFileDestFilethen 
  begin 
    ShowMessage
('Download succesful!'); 
    
// Show downloaded image in your browser 
    
ShellExecute(Application.HandlePChar('open'), PChar(DestFile),
      
PChar(''), nilSW_NORMAL)
  
end
  
else 
    
ShowMessage('Error while downloading ' SourceFile

end;

 
PChar(fileURL),nil,0,0,0);
try
//Найдем размер файла
if not HttpQueryInfohURLHTTP_QUERY_CONTENT_LENGTH, @lpBufBufferLenPDWORDnil )^ ) then
      FileSize 
:= 1
   
else
      
FileSize:=round(StrToIntlpBuf)/100);
.........
........
repeat
InternetReadFile
(hURL, @BufferSizeOf(Buffer), BufferLen);
BlockWrite(fBufferBufferLen)
until BufferLen 0;
//Методом деления измеряем длину шага
form1.ProgressBar1.Position := round(fsize/filesize);
CloseFile(f);
Result:=True;
finally



end
Если кто поможет буду благодарен ))

Последний раз редактировалось FanAnnGeL; 22.02.2010 в 18:52.
FanAnnGeL вне форума Ответить с цитированием
Старый 22.02.2010, 19:28   #14
uberchel
Участник клуба
 
Аватар для uberchel
 
Регистрация: 19.01.2009
Сообщений: 1,486
По умолчанию

Вот, пример с тем кодом который вам давали, можно и самому было подумать!
Вложения
Тип файла: rar pro.rar (1.7 Кб, 14 просмотров)
uberchel вне форума Ответить с цитированием
Старый 22.02.2010, 19:52   #15
FanAnnGeL
 
Регистрация: 16.02.2010
Сообщений: 4
По умолчанию

спасибо !!!!

Последний раз редактировалось FanAnnGeL; 22.02.2010 в 19:59.
FanAnnGeL вне форума Ответить с цитированием
Старый 22.02.2010, 22:21   #16
designer999
Форумчанин
 
Регистрация: 16.02.2010
Сообщений: 187
По умолчанию

Цитата:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, URLMon, ShellApi, ComCtrls, StdCtrls, ExtCtrls, IdBaseComponent,
IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, Gauges,
IdExplicitTLSClientServerBase, IdFTP;

const
MY_MESS = WM_USER + 100;


type
TForm1 = class(TForm)
Button1: TButton;
idhtp1: TIdHTTP;
Gauge1: TGauge;
IdFTP1: TIdFTP;
procedure idhtp1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
procedure idhtp1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
procedure Button1Click(Sender: TObject);
procedure idhtp1Authorization(Sender: TObject;
Authentication: TIdAuthentication; var Handled: Boolean);
private
{ Private declarations }
public
procedure MyProgress(var msg:TMessage); message MY_MESS;
{ Public declarations }
end;

type
TMsgRecord = record
thread : Integer;
msg : string[30];
end;

var
Form1: TForm1;

id1 : LongWord;
thread1 : Integer;
msg1 : TMsgRecord;
Rect : TRect;

implementation
uses FileCtrl;
{$R *.dfm}


procedure TForm1.MyProgress(var msg: TMessage);
begin
case msg.WParam of
0: begin
Gauge1.MaxValue := msg.LParam;
Gauge1.Progress := 0;
end;
1: Gauge1.Progress := msg.LParam;
end;
end;

procedure TForm1.idhtp1Authorization(Sender: TObject;
Authentication: TIdAuthentication; var Handled: Boolean);
begin

end;

procedure TForm1.idhtp1Work(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCount: Integer);
begin
PostMessage(Handle, MY_MESS, 1, AWorkCount);
end;

procedure TForm1.idhtp1WorkBegin(Sender: TObject; AWorkMode: TWorkMode;
const AWorkCountMax: Integer);
begin
PostMessage(Handle, MY_MESS, 0, AWorkCountMax);
end;

procedure LoadFile;
var
M: TMemoryStream;

begin
M:= TMemoryStream.Create;
try
begin
Form1.idhtp1.Get('http://fanangel.jino.ru/project1.rar', M);
M.SaveToFile('D:\project1.rar');
M.Free;
end;
except
ShowMessage('Error download file');
Exit;
end;
ShowMessage('Файл успешно закачан');


end;


procedure TForm1.Button1Click(Sender: TObject);
begin
msg1.thread := 1;
thread1:=BeginThread(nil,0,@LoadFil e,@msg1,0,id1);
CloseHandle(thread1);
end;


end.
Спасибо, вроде работает но если скачиваю файл в несколько метров загрузка не отображается, если скачиваю картинку то всё норм в чём может быть баг или ошыбка ????
designer999 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ProgressBar для скачивания KoBRaAndrey Работа с сетью в Delphi 5 04.04.2011 23:52
Защита от скачивания armref Безопасность, Шифрование 2 27.09.2009 14:03
Скорость скачивания Терминатор Свободное общение 3 30.03.2009 19:03
проблема с функцией скачивания файла из интернета ZeitGeist7 Работа с сетью в Delphi 2 27.02.2009 19:43
Контроль скачивания файлов kormax PHP 4 02.10.2008 15:39