首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >memo.lines.add的问题

memo.lines.add的问题
EN

Stack Overflow用户
提问于 2011-11-22 05:16:28
回答 1查看 2.3K关注 0票数 4

我正在尝试制作一个聊天应用程序,它将以如下形式将一条消息发布到备忘录中:

代码语言:javascript
复制
USERNAME-> Message

但它是这样发布到我的备忘录中的:

代码语言:javascript
复制
USERNAME

下面是我的代码:

代码语言:javascript
复制
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
  text : string;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);

  text:= sUserName + '-> ' + edit1.Text;
  memo1.Lines.Add(text);

对如何修复它有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-22 05:19:39

dwUserNameLen includes the null-terminator中返回的值。因此,您可以将其包含在text中。当字符串被发送到TMemo后面的Windows编辑控件时,该字符串将作为以null结尾的字符串传递。因此,来自用户名的零散null终止数据传输。

如下所示更改代码:

代码语言:javascript
复制
SetLength(sUserName, dwUserNameLen-1);

您还应该检查GetUserName的返回值,以防出现错误,但我将把这个细节留给您。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8218628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档