大家好,问题是这样的,用户随机输入一组字符串,比如“ABC中发白DEF大中小”,但是在Memo中要显示成这样:
ABC
中发白
DEF
大中小,或是当用户输入“中发白ABC大中小DEF”时,显示如下:中发白
ABC
大中小
DEF就是说当字符状态改变时,就换行显示。请指教...
ABC
中发白
DEF
大中小,或是当用户输入“中发白ABC大中小DEF”时,显示如下:中发白
ABC
大中小
DEF就是说当字符状态改变时,就换行显示。请指教...
或者把需要断开的地方加上标记,自己处理
或者这样
'中发白'+#10#13+'ABC'+#10#13+'大中小'+#10#13+'DEF',加换行符标记,直接自动就换行了
需要自己手动加#13#10
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;