function WrapText(mText: string; mLength: Integer): string; var I, J: Integer; begin Result := ''; while Length(mText) > mLength do begin J := Ord(ByteType(mText, mLength) = mbLeadByte); Result := Result + #13#10 + Copy(mText, 1, mLength - J); Delete(mText, 1, mLength - J); end; Result := Result + #13#10 + Copy(mText, 1, mLength); Delete(Result, 1, 2); end; { WrapText }
var
I, J: Integer;
begin
Result := '';
while Length(mText) > mLength do
begin
J := Ord(ByteType(mText, mLength) = mbLeadByte);
Result := Result + #13#10 + Copy(mText, 1, mLength - J);
Delete(mText, 1, mLength - J);
end;
Result := Result + #13#10 + Copy(mText, 1, mLength);
Delete(Result, 1, 2);
end; { WrapText }
2、可以使用IsLeadByte函数(API)判断一个字符是不是汉字的第一个字节,笨的方法是从一行的第一个字节开始判断,如果是则应该将下一个需要判断的字节多跳一下。
//..
begin
Result := '';
if mLength <= 1 then Exit; //容错
//..
end;