Memo组件根据字符内容换行?

Eagle_ice 2009-08-21 01:19:03
大家好,问题是这样的,用户随机输入一组字符串,比如“ABC中发白DEF大中小”,但是在Memo中要显示成这样:
ABC
中发白
DEF
大中小

,或是当用户输入“中发白ABC大中小DEF”时,显示如下:

中发白
ABC
大中小
DEF

就是说当字符状态改变时,就换行显示。请指教...
...全文
159 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eagle_ice 2009-08-24
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mjp1234airen4385 的回复:]
现场编写,有误无责。
Delphi(Pascal) codeprocedure SetMemoText(Memo: TMemo; Data: string);var
i, DataLen: integer;
StrTemp: string;begin
DataLen := Length(Data);
StrTemp := Data[1];for i :=2to DataLendobeginif ((StrTemp[1]< chr(128))and (Data[i]< chr(128)))or ((StrTemp[1]>= chr(128))and (Data[i]>= chr(128)))thenbegin
StrTemp:= StrTemp+ Data[i];endelsebegin
Memo.Lines.Add(StrTemp);
StrTemp := Data[i];end;end;
Memo.Lines.Add(StrTemp);end;
[/Quote]
要的就是这个结果...多谢...
mjp1234airen4385 2009-08-22
  • 打赏
  • 举报
回复
现场编写,有误无责。
procedure SetMemoText(Memo: TMemo; Data: string);
var
i, DataLen: integer;
StrTemp: string;
begin
DataLen := Length(Data);
StrTemp := Data[1];
for i := 2 to DataLen do
begin
if ((StrTemp[1] < chr(128)) and (Data[i] < chr(128)))
or ((StrTemp[1] >= chr(128)) and (Data[i] >= chr(128))) then
begin
StrTemp:= StrTemp + Data[i];
end else
begin
Memo.Lines.Add(StrTemp);
StrTemp := Data[i];
end;
end;
Memo.Lines.Add(StrTemp);
end;
imho888 2009-08-21
  • 打赏
  • 举报
回复
Memo是没用这个功能的
需要自己手动加#13#10
winstonbonaparte 2009-08-21
  • 打赏
  • 举报
回复
象我们经常有时候在一些提示的时候也会需要加上回车换行,就手工加上#13#10就可以了
bdmh 2009-08-21
  • 打赏
  • 举报
回复
自己断字,没有一点规律怎么搞
或者把需要断开的地方加上标记,自己处理
或者这样
'中发白'+#10#13+'ABC'+#10#13+'大中小'+#10#13+'DEF',加换行符标记,直接自动就换行了

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧