delphi memo显示数据问题

做串口通信时,用mscomm.接收下位机发送的信息时,显示用memo1.memo1.text:=memo1.Text+inputstring;//inputstring:... 做串口通信时,用mscomm.接收下位机发送 的信息时,显示用memo1. memo1.text:=memo1.Text+inputstring;//inputstring:=mscomm1.input .
//Memo1.SelStart:=Length(Memo1.Text);
//Memo1.SelLength:=Length(Memo1.Text);//memo滚动条总显示在最新更新数据处(滚动条往下走);
当接收数据多的时候,memo1中的数据闪动的厉害,影响观察接收数据。
而我用memo1.lines.add(inputstring),则显示下位机的一组数据就换行,不能显示满memo 就换行,比如:
sram://此行就显示个sram,以下行也是这样
ok sram2:
ok nvram:
ok 。。。。。
我想知道如果用memo1.text:=memo1.Text+inputstring;// 显示接收数据 怎么才能有效避免数据的闪动?
或者用memo1.lines.add(inputstring),怎么让它显示满行后,再换行。
如果有其他办法也行,能满足 接收数据时不闪动,显示满行后再换行。
在这儿先谢谢各位了。
展开
 我来答
dodolon
2013-12-18 · TA获得超过7713个赞
知道大有可为答主
回答量:4477
采纳率:84%
帮助的人:2144万
展开全部
用memo1. memo1.text:=memo1.Text+inputstring; memo就一直不换行,看到的换行是它自己折行的结果。自己定好每行显示多少组数据,用memo1.lines.Strings[memo1.lines.Count-1]=memo1.lines.Strings[memo1.lines.Count-1]+inputstring将数据附加到最后一行,当这行显示达到定好的数据长度后,再用ADD加一新行。
ayi033
2013-12-18 · TA获得超过144个赞
知道小有建树答主
回答量:317
采纳率:100%
帮助的人:104万
展开全部
本来Add就是添加一行,add一次就增加了一行,如果不想换行就要你自己控制了,比如你下位机发来的数据有换行符,如果没有收到换行符就 Add一次,收到换行符就Memo.Lines[Memo.Lines.Count -1] := Memo.Lines[Memo.Lines.Count -1] +'数据";
不建议用Memo.Text;像你说的这样,数据量虽然不大,但是行会非常多,每次用Text都会循环一次,效率太低了.
更多追问追答
追问
怎么判断下位机发送的数据是否有换行符呢?
追答
Pos函数就可以了, if Pos(#10, inputString) > 0 then
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式