[問題]Indy ftp client |
尚未結案
|
astiya
一般會員 發表:9 回覆:7 積分:3 註冊:2003-08-04 發送簡訊給我 |
|
axsoft
版主 發表:681 回覆:1056 積分:969 註冊:2002-03-13 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我使用IdFTP1->Put(LocalFile,DesFile,false);上傳檔案時整個程式的其他按鈕跟其他function(如Timer)都失效了,另一個按鈕用IdFTP1->Abort();完全沒反應,程式就像當掉一樣,可是檔案持續在上傳,請問這是何緣故,如何解決,謝謝! astiya 你好: 請參考以下的做法 (>>Host="127.0.0.1">Username="Username"; IdFTP2->Password="Password"; IdFTP2->Connect(true, 3000); IdFTP2->ChangeDir("/Test"); IdFTP2->Put("C:\\01.wav", "01.wav", false); IdFTP2->Disconnect(); } void __fastcall TForm1::Button3Click(TObject *Sender) { gbAbort=true; } void __fastcall TForm1::IdFTP2WorkBegin(TObject *Sender, TWorkMode AWorkMode, const int AWorkCountMax) { Application->ProcessMessages(); CGauge2->Progress=0; giWorkCountMax=AWorkCountMax; } void __fastcall TForm1::IdFTP2Work(TObject *Sender, TWorkMode AWorkMode, const int AWorkCount) { Application->ProcessMessages(); if(gbAbort) { IdFTP2->Abort(); IdFTP2->Disconnect(); } else { CGauge2->Progress=AWorkCount*100/giWorkCountMax; } } (6)請再依照自己的需求做修改備註: 測試環境 Windows 2000 Server SP3, BCB 6.0 Update 4, Indy V.9.0.14 -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2004/03/02 23:16:16
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
astiya
一般會員 發表:9 回覆:7 積分:3 註冊:2003-08-04 發送簡訊給我 |
|
astiya
一般會員 發表:9 回覆:7 積分:3 註冊:2003-08-04 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 我跟RaynorPao版主的測試環境只有作業系統不同,難道是XP的關係? 我測了一下,好像跟檔案大小有關,我本來傳一個70MB的檔就會這樣,但是 換成1MB的檔就正常了~~~~@@astiya 你好: 那是因為乘法的結果超出整數數值的範圍了,改成這樣子應該就可以了 < class="code"> double gdWorkCountMax; //int giWorkCountMax; bool gbAbort; void __fastcall TForm1::Button2Click(TObject *Sender) { gbAbort=false; IdFTP2->Host="127.0.0.1"; IdFTP2->Username="Username"; IdFTP2->Password="Password"; IdFTP2->Connect(true, 3000); IdFTP2->ChangeDir("/Test"); IdFTP2->Put("C:\\test\\test.exe", "test.exe", false); IdFTP2->Disconnect(); } void __fastcall TForm1::Button3Click(TObject *Sender) { gbAbort=true; } void __fastcall TForm1::IdFTP2WorkBegin(TObject *Sender, TWorkMode AWorkMode, const int AWorkCountMax) { Application->ProcessMessages(); CGauge2->Progress=0; // giWorkCountMax=AWorkCountMax; gdWorkCountMax=AWorkCountMax; } void __fastcall TForm1::IdFTP2Work(TObject *Sender, TWorkMode AWorkMode, const int AWorkCount) { Application->ProcessMessages(); if(gbAbort) { IdFTP2->Abort(); IdFTP2->Disconnect(); } else { double dWorkCount=AWorkCount; CGauge2->Progress=(int)(dWorkCount*100/gdWorkCountMax); // CGauge2->Progress=AWorkCount*100/giWorkCountMax; } } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
astiya
一般會員 發表:9 回覆:7 積分:3 註冊:2003-08-04 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |