关于Mscomm的接收问题(10分)

  • 主题发起人 zhangjianupc
  • 开始时间
Z

zhangjianupc

Unregistered / Unconfirmed
GUEST, unregistred user!
请帮我解决一下
我用PLC编程,按F7单步运行时,memo显示在同一行,但是F9时却显示四行?
comEvSend事件通过什么条件触发??

procedure TCommForm.FormCreate(Sender: TObject);
begin
mscomm.commport:=1;
mscomm.settings:='9600,e,7,2';
mscomm.inputlen:=0;
mscomm.inbuffercount:=0;
mscomm.portopen:=true;
mscomm.RThreshold:=1;
mscomm.SThreshold:=1;
// mscomm.InputMode:=comInputModeText;
// mscomm.NullDiscard:=True;
ss:='';
filenrc:=EdtCommSend.Text+Fcsvalue(EdtCommSend.Text)+chr(42)+chr(13);
j:=0;
k:=0;
assignfile(savef,'save1.txt');
rewrite(savef);
assignfile(readf,'read1.txt');
reset(readf);
end;

procedure TCommForm.MSCommComm(Sender: TObject);
var
buffer :variant;
s1:string;
const
enter:char=chr(10);
begin

case mscomm.commEvent of
{ comEvSend:
begin
mscomm.output:=filenrc;
j:=j+1;
lblDisplay.caption:=inttostr(j);
end;}
comEvReceive:
begin
s1:=mscomm.Input;
// s1:=buffer;
write(savef,s1);
write(savef,enter);
k:=k+1;
memDisplay.lines.add(inttostr(k)+s1);
end;
end;
end;
 

Similar threads

顶部