【问题标题】:Word wrap in TMemo at a plus (+) char在 TMemo 中以加号 (+) 字符换行
【发布时间】:2011-07-02 17:47:40
【问题描述】:

在我的字符串中,我有一个加号 (+) 字符。

例如字符串是

__VIEWSTATE=/wEPDwULLTIwMTY5NDMyMDAPZBYCZg9kFgICAQ9kFgxmD2QWAmYPFgIeC18hSXRlbUNvdW50AgMWBgIBD2QWAmYPFQEiPG5vYnI+PHNwYW4+0JLRhdC+0LQ8L3NwYW4+PC9ub2JyPmQCAw9kFgJmDxUBTDxub2JyPjxhIGhyZWY9J3NpZ251cC5hc3B4JyB0YXJnZXQ9J19zZWxmJz7QoNC10LPQuNGB0YLRgNCw0YbQuNGPPC9hPjwvbm9icj5kAgUPZBYCZg8VAUk8bm9icj48YSBocmVmPSdhYm91dC5hc3B4JyB0YXJnZXQ9J19zZWxmJz7QmNC90YTQvtGA0LzQsNGG0LjRjzwvYT48L25vYnI+ZAICD2QWBAIBDxYCHwACBRYKZg9kFgJmDxUBHjxsaT48Yj7QmtC

现在我在 memo1 中添加一行并得到这个:

Delphi 在随机位置插入新行。 我正在尝试删除所有换行符:

viewstate:=StringReplace(viewstate, #10#13, ' ', [rfReplaceAll]);
viewstate:=StringReplace(viewstate, #13#10, ' ', [rfReplaceAll]);
viewstate:=StringReplace(viewstate, #10, ' ', [rfReplaceAll]);
viewstate:=StringReplace(viewstate, #13, ' ', [rfReplaceAll]);

但是没有结果。这是什么?

附:我来自俄罗斯,很抱歉英语不好。

【问题讨论】:

    标签: delphi char line-breaks


    【解决方案1】:

    Delphi 没有添加换行符。备忘录在分隔符处添加了视觉软中断(例如+)。将备忘录的 WordWrap 属性设置为 false,它应该可以解决问题。

    【讨论】:

    • 将 wordwrap 设置为 false 会添加水平滚动条,但不会删除换行符 :)
    • 备忘录行的长度仍有限制,具体取决于您的操作系统。在 XP 上,限制似乎是 4096 个字符。这里的重点是实际上没有插入换行符,这只是一个视觉显示问题。
    【解决方案2】:

    仅供参考,要在特定字符上换行,您可以使用

    WrapText() SysUtils.pas 单元中的函数。

    function WrapText(const Line, BreakStr: string; const BreakChars: TSysCharSet;
      MaxCol: Integer): string;
    

    例如:

    sOutput := WrapText(sInput,#13#10,['+'],100);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-14
      • 2022-01-06
      • 2011-09-18
      相关资源
      最近更新 更多