【问题标题】:Reading Chars one by one from string and add them to TMemo [duplicate]从字符串中逐个读取字符并将它们添加到 TMemo [重复]
【发布时间】:2011-04-26 16:36:49
【问题描述】:

可能重复:
Adding Characters one by one to TMemo

你好, 我有一个字符串数组。我想在循环中一一读取字符串的字符,然后将它们显示到备忘录中(一一)。谁能告诉我该怎么做?谢谢

【问题讨论】:

  • 这是一个非常广泛的问题,包含许多部分和许多可能的答案。您能告诉我们您遇到问题的具体原因是什么吗?也许更重要的是,到目前为止你得到/尝试了什么? (向我们展示您的代码)
  • @Ken:是的,同样的海报,同样的问题开始。但是那个更侧重于计时器部分......虽然你是对的,但安德烈亚斯的回答同时解决了这两个问题。
  • @Marjan,Andreas 的代码显示逐个字母地访问字符串,并将它们添加到备忘录中,在我对 Sue 的另一篇关于向 TMemo 中添加段落以及 Andreas 在他的回答。尽管存在细微差别,但这是重复的。 Sue 需要注意答案向她展示的内容,而不是仅仅复制粘贴代码,否则她将学不到任何东西。
  • @Ken,刚刚发现(及时编辑我的评论:-)
  • @Marjan,没问题。当你添加你的最后一个时,我添加到我的。 :)

标签: delphi delphi-xe


【解决方案1】:

使用两个嵌套循环。第一个迭代字符串数组。第二个遍历每个字符串中的字符。

procedure DisplayCharsOneByOne(const arr: array of string; Memo: TMemo);
var
  s: string;
  c: Char;
begin
  for s in arr do
    for c in s do
      Memo.Lines.Add(c);
end;

【讨论】:

  • 我们什么时候开始回答重复的问题而不是关闭它们?
  • 我不认为我回答了重复,@Ken。我在这里发布的内容甚至没有接近回答另一个问题。同样,那里的答案比回答这个问题所必需的复杂得多。他们被计时器、线程和段落之类的东西所困,这些都与这个问题无关。如果 X 的答案不回答 Y,并且 Y 的答案不回答 X,则 X 和 Y 不重复。
  • 您可能在字里行间阅读。 OP 没有明确表示她希望备忘录中每行一个字符。对我来说,这听起来更像是她想保留字符串数组中的行,并且只是为字符的插入设置动画,一个接一个,即旧的“打字机效果”。这已经得到了回答。另一方面,如果不需要打字机效果,并且 OP 只想将字符串数组加载到备忘录中,那么一次执行单个字符非常低效 (并重新绘制一个字符一次的控件)!
  • 不管其他复杂性如何,Andreas 之前的回答清楚地表明一次从字符串(具体而言是 TStringList.String)读取单个字符,并将该单个字符添加到 TMemo。 Sue 需要学习阅读她在答案中收到的代码,而不仅仅是将其粘贴进去;除了提供更多代码来复制和粘贴之外,回答明确的重复项并没有任何帮助。
猜你喜欢
  • 1970-01-01
  • 2018-12-14
  • 2021-04-04
  • 2013-07-07
  • 1970-01-01
  • 2016-05-23
  • 2022-01-21
  • 2017-03-14
  • 1970-01-01
相关资源
最近更新 更多