| 
| 
 | Вопрос # 185/ вопрос открыт / | 
 |  у моей программы не работает докачка, может кто-нибудь знает где ошибка?Вот код которым я пользуюсь.
 Приложение:Переключить в обычный режим interface uses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,  WinInet, XPMan,  StdCtrls, ComCtrls, Menus, ExtCtrls; Type  TForm1 = Class(TForm)    Edit1: TEdit;    ProgressBar1: TProgressBar;    Button: TButton;    StatusBar1: TStatusBar;    Timer1: TTimer;    Button1: TButton;    Button2: TButton;    procedure FormCreate(Sender: TObject);    procedure Edit1DblClick(Sender: TObject);    procedure ButtonClick(Sender: TObject);    procedure Timer1Timer(Sender: TObject);    procedure Button1Click(Sender: TObject);    procedure Button2Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end; Var  Form1: TForm1;  Stop: Boolean;  cop1:string;  FSize, RestartPos: Cardinal; Implementation {$R *.DFM} function GetInetFileSize(Const AURL: String): Integer;varHSession, HFile: HInternet;Buffer: array [1..20] of Char;BufferLen, Index: Cardinal;beginResult := 0;HSession := InternetOpen(NIL, INTERNET_OPEN_TYPE_PRECONFIG, NIL, NIL, 0);If Assigned(HSession) Then BeginHFile := InternetOpenURL(HSession, PChar(AURL), NIL, 0, INTERNET_FLAG_RELOAD, 0);Index := 0;BufferLen := 20;If HttpQueryInfo(HFile, HTTP_QUERY_CONTENT_LENGTH, @Buffer, BufferLen, Index) ThenResult := StrToInt(StrPas(@Buffer));InternetCloseHandle(HFile);InternetCloseHandle(Hsession);End;End; Procedure TForm1.FormCreate(Sender: TObject);BeginStop := False;Button2.Enabled := False;End; procedure TForm1.Edit1DblClick(Sender: TObject);beginedit1.SelectAll;end; procedure TForm1.ButtonClick(Sender: TObject);var ild1:integer;lt1:string;beginlt1:=edit1.text;ild1:=LastDelimiter('/', lt1);cop1:=copy(lt1, ild1+1, ild1);Statusbar1.Panels[0].Text:=cop1;end; procedure TForm1.Button1Click(Sender: TObject);varHInet, hURL: HINTERNET;ReadLen, GlobRead: Cardinal;FBuf: array[1..1024] of Byte;F: File;lt, Header, cop:string;err:boolean;ild, ild1:integer; speed:double;tmp: integer;BeginStop := false;timer1.Enabled:=true; RestartPos := 0;FSize := GetInetFileSize(Edit1.Text);Statusbar1.Panels[2].Text:=IntToStr(FSize)+'b';Button1.Enabled := False;Button2.Enabled := True; lt:=edit1.text;ild:=LastDelimiter('/', lt);ild1:=LastDelimiter('.', lt);cop:=copy(lt, ild, ild1+3); If FileExists('C:temp'+cop ) Then BeginAssignFile(f, 'C:temp'+cop );Reset(F, 1);RestartPos := FileSize(F);Seek(F, FileSize(F));End Else beginAssignFile(f, 'C:temp'+cop );ReWrite(f, 1);End;HInet := InternetOpen(NIL, PRE_CONFIG_INTERNET_ACCESS, NIL, NIL, 0);Header := 'Accept: */*';HURL := InternetOpenURL(HInet,PChar(Edit1.Text), PChar(Header), StrLen(PChar(Header)), 0, 0);If RestartPos > 0 Then BeginInternetSetFilePointer(HURL, RestartPos, NIL, 0, 0);ProgressBar1.Min := 0;ProgressBar1.Max := FSize;ProgressBar1.Position := RestartPos;End Else BeginProgressBar1.Min := 0;ProgressBar1.Max := FSize;End;repeaterr:= InternetReadFile(HURL, @FBuf, SizeOf(FBuf), ReadLen);IF err= false then begin
//Îøèáêà
÷òåíèÿShowMessage
('Ïðîèçîøåë
îáëîì :(');
//Ñîîáùèì
è
&#226;&#251;&#245;&#238;&#228;&#232;&#236;exit;end;BlockWrite(F, FBuf, ReadLen);GlobRead:=GlobRead+ReadLen;RestartPos := FileSize(F);Statusbar1.Panels[1].Text:=IntToStr(RestartPos)+'b';ProgressBar1.Position := RestartPos;Application.ProcessMessages;until (ReadLen < 1) or (Stop = true);Stop := False;Button1.Enabled := True;Button2.Enabled := False;InternetCloseHandle(HURL);InternetCloseHandle(HInet);CloseFile(F);end; procedure TForm1.Button2Click(Sender: TObject);beginStop := True;Progressbar1.Position:=0;Button1.Enabled := True;Button2.Enabled := False;end; procedure TForm1.Timer1Timer(Sender: TObject);varii:real;s:string;beginii:=RestartPos/(FSize/100);s:=floattostr(ii);s:=copy(s, 1, 4); if statusbar1.Panels[1].Text=statusbar1.Panels[2].Text then beginstatusbar1.Panels[3].Text:='Ready';timer1.Enabled:=false;end else statusbar1.Panels[3].Text:=s+'%';end;
|  |   Вопрос задал: Evghenusi (статус: Посетитель)Вопрос отправлен: 1 декабря 2006, 23:00
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Alex Van Glukhman Здравствуйте, Evghenusi!
 В коде отсутствует метод Append. А вообще это лучше делать через TFileStream
 
|  | Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)Время отправки: 2 декабря 2006, 00:20
 
 |  
 Мини-форум вопросаВсего сообщений: 4; последнее сообщение — 26 декабря 2008, 02:14; участников в обсуждении: 3. 
|   | Alex Van Glukhman (статус: 7-ой класс), 2 декабря 2006, 00:08 [#1]:Ваш код настолько удобочитаем, что изначально хочется уйти с данной страницы. Если вы не хотите получить ответ в такой же форме как и вопрос, то переформатируйте текст или выложите ссылку на файлы исходника |  
|   | Alex Van Glukhman (статус: 7-ой класс), 2 декабря 2006, 00:09 [#2]:Прошу прощения но по почте мне прислали какие-то крякозябры - видимо предыдущий вопрос к админу |  
|   | Ерёмин А.А. (статус: *Администратор), 2 декабря 2006, 08:28 [#3]:Всё дело в том, что автор вопроса, видимо, не заметил поля "Приложения" которое специально для исходных кодов и создано... Вопрос был откорректирован, с разосланными письмами ничего не сделать. |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |