我在一个Edit里面输入了几个汉字!
  现在我想在另个Edit里面把每个汉字的拼音的第一个字符显示出来该怎么搞啊》?

解决方案 »

  1.   

    请参考:获取一个汉字的拼音首字
    /////////////////////////////////////////////////////////////////////////////// FileName: PY.pas//// Copyright (C) 1999 By Zhang Qing//// You can use and modify it ,but please send me an email.//// E-Mail: [email protected]/////////////////////////////////////////////////////////////////////////////unit PY;
    interfaceuses sysutils;
    //  获取汉字的拼音首字符 ,这个函数将用在 GetPYIndexStr  中 .function GetPYIndexChar(strChinese: string; bUpCase: Boolean = True): char;
    //  获取多个汉字的拼音首字符组成的字符串 .function GetPYIndexStr(strChinese: string; bUpCase: Boolean = True): string;
    implementation
    //////////////////////////////////////////////////////////////////////////////  函数 : GetPYIndexChar(strChinese: string;bUpCase: Boolean = True): char;////  函数功能 : 获取汉字的拼音首字符 .//  例 : GetPYIndexChar(' 程 ')  将返回 'C'.////  注意 : 对于多于一个汉字的输入 (string 类型 ) 只有第一个有效 ,但不会产生错误 //  例如 ,GetPYIndexChar(' 程序 ') 也将返回 'C'.////  第二个参数决定返回大写还是小写  ,  缺省为大写  .////////////////////////////////////////////////////////////////////////////function GetPYIndexChar(strChinese: string;bUpCase: Boolean = True): char;begin//  根据汉字表中拼音首字符分别为 "A" 至 "Z" 的汉字内码范围 ,//  要检索的汉字只需要检查它的内码位于哪一个首字符的范围内 ,//  就可以判断出它的拼音首字符。   case WORD(strChinese[1]) shl 8 + WORD(strChinese[2]) of    $B0A1..$B0C4 : result := 'A';    $B0C5..$B2C0 : result := 'B';    $B2C1..$B4ED : result := 'C';    $B4EE..$B6E9 : result := 'D';    $B6EA..$B7A1 : result := 'E';    $B7A2..$B8C0 : result := 'F';    $B8C1..$B9FD : result := 'G';    $B9FE..$BBF6 : result := 'H';    $BBF7..$BFA5 : result := 'J';    $BFA6..$C0AB : result := 'K';    $C0AC..$C2E7 : result := 'L';    $C2E8..$C4C2 : result := 'M';    $C4C3..$C5B5 : result := 'N';    $C5B6..$C5BD : result := 'O';    $C5BE..$C6D9 : result := 'P';    $C6DA..$C8BA : result := 'Q';    $C8BB..$C8F5 : result := 'R';    $C8F6..$CBF9 : result := 'S';    $CBFA..$CDD9 : result := 'T';    $CDDA..$CEF3 : result := 'W';    $CEF4..$D188 : result := 'X';    $D1B9..$D4D0 : result := 'Y';    $D4D1..$D7F9 : result := 'Z';    else               result := char(0);  end;  if not bUpCase then  begin //  转换为小写     result := Chr(Ord(result)+32);  end;end;
    //////////////////////////////////////////////////////////////////////////////  函数 : GetPYIndexStr(strChinese: string;bUpCase: Boolean = True): string;////  函数功能 : 获取多个汉字的拼音首字符组成的字符串 .//  例 : GetPYIndexStr(' 程 ')  将返回 'C'.//     GetPYIndexStr(' 程序 ') 将返回 'CX'.////  第二个参数决定返回大写还是小写  ,  缺省为大写  .////////////////////////////////////////////////////////////////////////////function GetPYIndexStr(strChinese: string;bUpCase: Boolean = True): string;var  strChineseTemp : string;  cTemp : Char;begin  result := '';  strChineseTemp := strChinese;  while strChineseTemp<>'' do  begin    cTemp := GetPYIndexChar(strChineseTemp);    if not bUpCase then    begin //  转换为小写       cTemp := Chr(Ord(cTemp)+32);    end;    result := result + string(cTemp);    strChineseTemp := Copy(strChineseTemp,3,Length(strChineseTemp));  end;end;
    end.