VCL-Memo |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
這個作法我了解,但是,很煩人的是,只要一用到MEMO->TEST
因為是整個畫面重新顯示,而在READ DATA 的速度是這麼快的情形下
閃動畫面是不被接受的
以下這個Timer1 是我用1/1000去讀rs232出來的值 void __fastcall TMain_Form::Timer1Timer(TObject *Sender)
{
AnsiString Temp;
char inbuff[4096];
DWORD nBytesRead, dwEvent, dwError;
COMSTAT cs;
ClearCommError(hComm,&dwError,&cs);
if (cs.cbInQue > sizeof(inbuff))
{
PurgeComm(hComm, PURGE_RXCLEAR); // 清除COM 資料
return;
}
ReadFile(hComm, inbuff,cs.cbInQue,&nBytesRead,NULL);
//陣列中的字串結尾處補上零字元
inbuff[cs.cbInQue]= '\0';
if (inbuff[0] != '\0')
{
RichEdit-> Lines->Add(inbuff);
//問題就是在這一段的處理 }
}
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
在各位大德(icsboy、dllee、天使兄....etc)的幫助下,
這段程式碼終於能完成我要的需成了
程式寫的很亂,很爛,但沒關係,我很開心,要快快告訴大家
明天有空再改好看一點...台灣的RD...鳴..
現在是PM07:30 我還沒吃飯,我要走了..SEE YOU... AnsiString Temp;
char inbuff[4096];
DWORD nBytesRead, dwEvent, dwError;
COMSTAT cs; ClearCommError(hComm,&dwError,&cs);
if (cs.cbInQue > sizeof(inbuff))
{
PurgeComm(hComm, PURGE_RXCLEAR);
return;
}
if (cs.cbInQue > 0 )
{
ReadFile(hComm, inbuff,1,&nBytesRead,NULL);
inbuff[1]= '\0';
if (inbuff[0] != '\0')
{
if (Counter <9 && Counter >0 )
{
Counter ;
RichEdit->Lines->Strings[Counter2] = RichEdit->Lines->Strings[Counter2] (AnsiString)inbuff ;
}
if (Counter == 9)
{
RichEdit->Lines->Strings[Counter2] = RichEdit->Lines->Strings[Counter2] " ";
Counter = 1;
Counter1 ;
}
if (Counter1 == 8)
{
Counter1=1;
Counter2 ;
}
}
}
if (Stop_Flag == true)
{
Timer1->Enabled = false ;
}
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |