Форум 3DNews
Вернуться   Форум 3DNews > Программирование > Программирование

Ответ Создать новую тему
Опции темы Опции просмотра
Непрочитано 22.05.2007, 18:00   [включить плавающее окно]   #1
Postal
Мужской Бывалый
Автор темы
 
Аватар для Postal
 
Регистрация: 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.
__________________
О, дихлофос - во имя добра! (с) Пиво Сокол
Postal вне форума  
Конфигурация ПК
Ответить с цитированием
Непрочитано 29.05.2007, 17:46   [включить плавающее окно]   #2
Phodopus
Мужской Продвинутый
 
Регистрация: 05.10.2005
Адрес: Санкт-Петербург
Чего-то у меня весь твой код съехал и русские букавки иероглифами оказались, поэтому разобраться сложно, но чему будет равен SizeOf(Document) div Stream1.Size ?
Phodopus вне форума  
Ответить с цитированием
Ответ Создать новую тему

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 17:38. Часовой пояс GMT +3.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 2000-2017 3DNews. All Rights Reserved.
Администрация 3DNews требует соблюдения на форуме правил и законов РФ
Серверы размещены в Hostkey