我在使用SpComm時不會觸發onReceiveData 事件,我的RS232連接在DOS下測試過了,沒有問號?Comm1.StartComm; // 運行正常// 不會運行onReceiveData 事件,我的RS232連接在DOS下測試過了,沒有問號。
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
s: string;
begin
Showmessage('aa'); // 調試語句
SetLength(S, BufferLength);
Move(Buffer^, PChar(S)^, BufferLength);
Memo1.Lines.Add(S);
Memo1.Invalidate;
end;----------------------------------------------------------------
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
s: string;
begin
Showmessage('aa'); // 調試語句
SetLength(S, BufferLength);
Move(Buffer^, PChar(S)^, BufferLength);
Memo1.Lines.Add(S);
Memo1.Invalidate;
end;----------------------------------------------------------------
解决方案 »
- 各位高手,请问这段程序是什么含义啊
- 定义临时表 出错 Invalid field type..... 谢谢各位大侠
- 想设一个共用变量,用两个应用程序(.EXE),一个应用程序给共用变量赋值,另一个应用程序可以取出共用变量的值。
- in的用法
- 请教Delphi6.0的一个问题
- 请教:控制excel,作二维图,出错。怎么改?
- listview怎么取得当前所点框格的坐标,它没有cellrect的方法...
- 怎样让我的DBGrid中的每条记录被光带完全选中?
- 请看一下我的sql语句,问题出在哪里?
- 如何给新人一个机会?大家都来看看啊。
- 如何更可靠的切换任务,高手请进!
- ★★★★★一个有点难度和技巧的问题:如何产生在编辑过程中的弹出式输入加速列表框,有点类似Delphi的微帮助★★★★★
Len:=1;//长度 Comm1.Inx_XonXoffFlow:=false;
Comm1.Outx_XonXoffFlow:=false;
flag:=Comm1.WriteCommData(@(pDataToWrite),Len); dtTmp:=Now;
while ((not (flag)) and ((Now-dtTmp)<(1000 /(24*60*60*1000)))) do //等待1秒试试
begin
Application.ProcessMessages;//处理缓冲区数据
end;
建议接收函数为: sRece1:string; //接收到的字符串
rbuf:array[1..20] of byte;//把接收到的二进制转化为整数,存储在数组里procedure TForm_Set_TiQianLiang.Comm1ReceiveData(Sender: TObject;
Buffer: Pointer; BufferLength: Word);
var
i:integer;
begin
sRece1:='';
move(buffer^,pchar((@rbuf)^),bufferlength);
for i:=1 to bufferlength do
begin
sRece1:=sRece1+ inttohex(rbuf[i],2);
end;
end;
我也想是串口初始化的問題,就是找不出原因,請大家給個意見參考一下。
會有影響嗎?