关于获得汉字拼音首位字母的函数在delphi2010无效,该怎么处理

关于获得汉字拼音首位字母的函数在delphi2010无效
这段代码在delphi7有效,在Delphi2010为什么会无效?谢谢!

Function TForm1.getpy(hzchar:string):char;//获得汉字拼音首位字母的函数
begin
  case word(hzchar[1]) shl 8+word(hzchar[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(32);
  end;
end;

------解决方案--------------------
Delphi(Pascal) code

function getpy(hzchar: AnsiString): Char;
begin
  case word(hzchar[1]) shl 8 + word(hzchar[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(32);
  end;
end;

------解决方案--------------------
汉字的unicode编码和ansi编码都是2字节,可是内容不一样?我上面发的自己测试过,绝对是可以的。
------解决方案--------------------
我在delphi2010下测试一下,首先可以肯定的是一定要用AnsiString,因为2010下String是WideString它是unicode的,#5楼的程序基本没问题,但只支持GBK的一级汉字,所以LZ说返回空值.
对于常用的汉字,#5楼的可以,但二级字库或unicode中的某些汉字,就不能用了