分不够可再加
在系统那个文件或库实现英文单词的识别(自动换行),没有的话如何实现给点建议,最好有程序哦
我有几个符号(自己做的),单独可用,结合起来也能用但不能换行,换行后就是错的该怎么办

解决方案 »

  1.   

    UPUPUPUP
    实在不知你讲什么啊????
    应该是#13#10吧....
    UP一下!
      

  2.   

    wrapText()可以,
    下面修改后可以换行中文的加入 #13#10
    function WrapTexts(const Line, BreakStr: string; const BreakChars: TSysCharSet;
      MaxCol: Integer): string;
    const
      QuoteChars = ['''', '"'];
    var
      Col, Pos: Integer;
      LinePos, LineLen: Integer;
      BreakLen, BreakPos: Integer;
      QuoteChar, CurChar: Char;
      ExistingBreak: Boolean;
      L: Integer;
    begin
      Col := 1;
      Pos := 1;
      LinePos := 1;
      BreakPos := 0;
      QuoteChar := ' ';
      ExistingBreak := False;
      LineLen := Length(Line);
      BreakLen := Length(BreakStr);
      Result := '';
      while Pos <= LineLen do
      begin
        CurChar := Line[Pos];
        if CurChar in LeadBytes then
        begin
          L := CharLength(Line, Pos) - 1;
          Inc(Pos, L);
          Inc(Col, L);
          if Col>=MaxCol then
            BreakPos:=Pos;
        end
        else
        begin
          if CurChar = BreakStr[1] then
          begin
            if QuoteChar = ' ' then
            begin
              ExistingBreak := CompareText(BreakStr, Copy(Line, Pos, BreakLen)) = 0;
              if ExistingBreak then
              begin
                Inc(Pos, BreakLen-1);
                BreakPos := Pos;
              end;
            end
          end
          else if CurChar in BreakChars then
          begin
            if QuoteChar = ' ' then BreakPos := Pos
          end
          else if CurChar in QuoteChars then
          begin
            if CurChar = QuoteChar then
              QuoteChar := ' '
            else if QuoteChar = ' ' then
              QuoteChar := CurChar;
          end;
        end;
        Inc(Pos);
        Inc(Col);
        if not (QuoteChar in QuoteChars) and (ExistingBreak or
          ((Col > MaxCol) and (BreakPos > LinePos))) then
        begin
          Col := Pos - BreakPos;
          Result := Result + Copy(Line, LinePos, BreakPos - LinePos + 1);
          if not (CurChar in QuoteChars) then
            while Pos <= LineLen do
            begin
              if Line[Pos] in BreakChars then
                Inc(Pos)
              else if Copy(Line, Pos, Length(sLineBreak)) = sLineBreak then
                Inc(Pos, Length(sLineBreak))
              else
                break;
            end;
          if not ExistingBreak and (Pos < LineLen) then
            Result := Result + BreakStr;
          Inc(BreakPos);
          LinePos := BreakPos;
          ExistingBreak := False;
        end;
      end;
      Result := Result + Copy(Line, LinePos, MaxInt);
    end;