nrComm的OnAfterReceive事件永不觸發的問題 |
缺席
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
最近要改用BCB2007來寫串列埠的應用程式,因為手頭上免費的元件都不能用,所以改用nrComm來試試。
測試的硬體是一條第2及第3支腳位串連的rs232線材,所以我送出去的文字也會原封不動地傳回來 以下就是我測試的程式: [code cpp] nrComm1->Active = true; nrComm1->SendString = "Test"; Sleep(100); Edit1->Text = nrComm1->ReadString(); nrComm1->Active = false; [/code] 以上的程式是ok的,文字送出去後會正常傳到edit內。 再來就是測試TnrComm的OnAfterReceive事件,看我傳送的資料會不會馬上回傳。 先來看看原程式說明: type TOnReceived =procedure( Sender:TnrBaseIO; Buffer:Pointer; Received:Cardinal) of object; property OnAfterReceive: TOnReceived; Description: The OnAfterReceive event will occur when input buffer has new data. The received bytes are allowed in Buffer. The Received parameter is number of received bytes. m$的翻譯是這樣: 當輸入緩衝區具有新的資料時,會發生 OnAfterReceive 事件。 緩衝區中允許將收到的位元組。 Received 參數是數目收到位元組為單位。 於是,我就把原來的程式內容改成: [code cpp] void __fastcall TForm1::nrComm1AfterReceive(TObject *Com, Pointer Buffer, DWORD Received) { Edit1->Text = char(Buffer); } [/code] 看起來應該是這樣沒有錯,但實際上在run的時候,資料send出去了,可是卻沒有觸發receive事件…實在是很奇怪啊! 不知道有沒有人用過這套元件呢? |
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
原來已經有人問過這類的問題啊......以下是DeepSoftware技術人員的回答:
=============== Hello You can find the several useful demo projects after installation the trial version of nrComm Lib. Some of this demo projects are available over shortcuts in the "Start" menu, more samples you can see in nrCom Lib home folder on your local disk. You can try following demos:
結論就是...我沒看清楚啦 > <||| 資料來源: http://deepsoftware.com/groups_dsr/index.php?PHPSESSID=3c8b36a297436122a02c6dcc045bcdee&topic=27.0 |
mephise
高階會員 發表:4 回覆:149 積分:205 註冊:2004-02-09 發送簡訊給我 |
|
GrandRURU
站務副站長 發表:240 回覆:1680 積分:1874 註冊:2005-06-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |