執行 NMFTP1->List() 時的錯誤 !!! 急 !!! |
尚未結案
|
cpc0935
一般會員 發表:1 回覆:0 積分:0 註冊:2003-11-17 發送簡訊給我 |
NMFTP1->Port = modu1->quer_pdm_setupDRAWBASE_FTP_PORT->AsInteger;//指定連接埠
NMFTP1->UserID = modu1->quer_pdm_setupDRAWUSER_FTP->AsString; //連線的使用者帳號
NMFTP1->Password = modu1->quer_pdm_setupDRAWPASS_FTP->AsString; //連線的密碼
NMFTP1->Connect(); //送出連線訊息
NMFTP1->ParseList=true; NMFTP1->List(); //取得遠端的檔案名稱
//--------------------------------------------------------------------
各位先進好:
以上是我在BCB 6.0 寫的一段執行的程式,然後在DBGrid上以游標點選Cell讀取紀錄之檔案名稱來讀出或寫入FTP Server,通常不會有問題 .
但若使用者以較快的速度點選DBGrid上之不同紀錄 , 而且其網路傳輸速度較慢時 , 便常會出現錯誤訊息:[A list command is already being processed],只好按OK,如此之後再按DBGrid上任一Cell , 就一定出現同樣錯誤訊息 , 而且程式也無法結束 , 必須按CTRL ALT DEL才可強制結束程式 .
我嘗試在出現錯誤時 , 使用NMFTP元件之各種方法, 如:
NMFTP1->Disconnect(); 再執行 NMFTP1->Connect();
NMFTP1->Reinitialize();
NMFTP1->Abort();
NMFTP1->ClearInput();
.........
均無效, 真讓我束手無策了.
請各位先進誰有法可解? 拜託 拜託 急急急!!!
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
消極一點的做法,List 還沒有結果回來時,DBGrid 不給按 ~~ < class="code">
void __fastcall TForm1::DBGrid1CellClick(TColumn *Column)
{
//........................................
NMFTP1->List();
DBGrid1->Enabled = false;
} void __fastcall TForm1::NMFTP1Success(TCmdType Trans_Type)
{
if (Trans_Type == cmdList)
DBGrid1->Enabled = true;
} void __fastcall TForm1::NMFTP1Failure(bool &Handled, TCmdType Trans_Type)
{
if (Trans_Type == cmdList)
DBGrid1->Enabled = true;
//...................................................
Handled = true;
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |