簡體   English   中英

indy GET下載速度

[英]indy GET dowloading speed

歡迎,

我必須使用indy http get compontent在我的應用程序中創建有關下載速度的信息的標題。

在我看來,我找到了簡單的解決方案

在onwork活動中,我將獲得下載(大小)的實際進度,並將其與之前的閱讀進行比較。 (例如每5秒鍾)。 curent size減去之前的(5秒鍾,存儲在全局變量中)除以5秒* 8,我將獲得速度。 如果實際尺寸等於之前,則速度始終為0。

所以我想開始編碼,但我發現了一個叫做odwork的簡單功能問題。

procedure TForm1.HttpWork(ASender: TObject; AWorkMode: TWorkMode;
  AWorkCount: Int64);
  begin
    showmessage('hello im herre');
end;

問題是,該功能不被稱為......我不知道為什么。

我正在下載100 MB的文件,我看不到任何showmessage ...

有什么想法嗎? 問候

只有在事先調用了連接的BeginWork()方法時才會觸發OnWork ...事件。 Indy的許多讀/寫方法都不會自動調用它。 但是,TIdHTTP使用TStream對象讀/寫請求/響應正文數據,並且連接的讀/寫TStream方法在內部調用BeginWork(),因此您肯定會在HTTP操作期間觸發OnWork ...事件。

你是否也將httpwork分配給組件? onprogress或onwork無論它叫什么?

此外,使用標簽,而不是在您單擊之前不會返回的模態組件,因為這可能會中斷下載流程。

我不得不說你的HTTPWork事件沒有掛鈎到組件中。 如果表單上有HTTP組件,請調出屬性並雙擊OnWork事件,然后輸入ShowMessage ...它應該顯示出來。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM