![]() |
|
Сайт 3DNews | Регистрация | Правила | Справка | Пользователи | Календарь | Поиск | Сообщения за день | Все разделы прочитаны |
|
![]() ![]() |
Опции темы | Опции просмотра |
![]() |
[включить плавающее окно] #1 | |
![]() Автор темы Регистрация: 01.04.2004
Адрес: На воздушном прянике!
|
Почему не работает прогрессбар
Давненько я не брал в руки шашек.. То есть нет, не шашек, а Борланд Дэлфи 7. Короче, тут дакая дилемма вышла: забыл, как прирутить прогрессбар к программе. Пишу маленькую качалку (пока только для http, позже подключу ftp с помощью модуля ftpsend.pas ), а прогрессбар стоит на нуле. Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, httpsend, ComCtrls, XPMan; type TOpenLoader = class(TForm) Edit1: TEdit; Button1: TButton; ProgressBar1: TProgressBar; XPManifest1: TXPManifest; //ñòèëèçóåì ýëåìåíòû ïðîãðàììû ïîä XP SaveDialog1: TSaveDialog; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var OpenLoader: TOpenLoader; Stream1: TMemoryStream; a : integer; f_hdd, f_onnet : String; implementation {$R *.dfm} procedure TOpenLoader.Button1Click(Sender: TObject); begin f_onnet:=Edit1.Text; with T HTTPSend.Create do begin if not HTTPMethod('GET', Edit1.Text) then //ïîïûòàåìñÿ ïîëó÷èòü ôàéë ShowMessage('Fuck!') //åñëè íåò - âûðóãàåìñÿ else f_hdd:=f_onnet; if Pos('/', f_onnet)<>0 then //êîä äëÿ ïîëó÷åíèÿ èìåíè for a:=0 to 10 do //ñêà÷èâàåìîãî ôàéëà Delete(f_hdd, 1, pos('/', f_hdd)); Stream1:= Document; // êîïèðóåì ñêà÷àííûé äîêóìåíò â ïîòîê ProgressBar1.Min:=0; // ìèíèìàëüíûå è ìàêñèìàëüíûå çíà÷åíèÿ ProgressBar1.Max:=100; // ïðîãðåññáàðà while Stream1.Size < SizeOf(Document) do begin //áóäåì óâåëè÷èâàòü çíà÷åíèå ProgressBar1, ïîêà íå ñêà÷àåì ProgressBar1.Position:=ProgressBar1.Position + SizeOf(Document) div Stream1.Size; Application.ProcessMessages; end; Savedialog1.Filename:=f_hdd; //òóò, âîçìîæíî, êðèâîâàòî If SaveDialog1.Execute then Stream1.SaveToFile(SaveDialog1.FileName); ShowMessage('File "'+ f_hdd + '" successfully saved!'); Stream1.Free; Document.Free; end; end; end.
__________________
О, дихлофос - во имя добра! (с) Пиво Сокол |
|
![]() |
![]() |
![]() |
[включить плавающее окно] #2 |
![]() Регистрация: 05.10.2005
Адрес: Санкт-Петербург
|
Чего-то у меня весь твой код съехал и русские букавки иероглифами оказались, поэтому разобраться сложно, но чему будет равен SizeOf(Document) div Stream1.Size ?
|
![]() |
![]() |