2009年10月19日星期一

[收藏]bcb中输出一定长度的带有省略号的字符

bcb中输出一定长度的带有省略号的字符

//输出一定长度的带有省略号的字符
AnsiString __fastcall TForm1::StringFormat(const AnsiString & String, const int n)
{
    AnsiString temp = "";
    int tmpLength = n - Canvas->TextWidth("AAA");
    if ( Canvas->TextWidth("A") * String.Length() <= n)
    {
        return String;
    }
    else
    {
        int t = 0;
        char *q = String.c_str();
        for (int i=0;i<String.Length() && t<tmpLength; ++i)
        {

            temp+=q[i];
            t = Canvas->TextWidth(temp);
        }
        return (temp+"...");
    }
}
/////////////////////////////////////////////////////////////////////////

没有评论:

发表评论