分享

Delphi中实现汉字拼音声母查询

 quasiceo 2012-12-29

Delphi中实现汉字拼音声母查询

 Delphi中实现汉字拼音声母查询,unit代码如下:

  
  unitUnit1;

  interface

  uses
  Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,
  StdCtrls;

  type
  TForm1=class(TForm)
  ListBox1:TListBox;
  ListBox2:TListBox;
  Edit1:TEdit;
  Label1:TLabel;
  procedureEdit1Change(Sender:TObject);
  procedureFormShow(Sender:TObject);
  procedureFormDestroy(Sender:TObject);
  procedureEdit1Enter(Sender:TObject);
  procedureEdit1Exit(Sender:TObject);
  private
  {Privatedeclarations}
  public
  ResultList1:TStrings;
  end;

  var
  Form1:TForm1;

  procedureSearchByPyIndexStr(PYIndexStr:string);

  implementation

  {$R*.DFM}
  functionGetPyIndexChar(Hzchar:string):String;
  begin
  case(Word(hzchar[1])shl8 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..$D1B8:Result:='X';
  $D1B9..$D4D0:Result:='Y';
  $D4D1..$D7F9:Result:='Z';
  else
  Result:=char(0);
  end;
  end;

  procedureSearchByPyIndexStr(PYIndexStr:string);
  labelNotFound;
  var
  I,J:Integer;
  Hzchar:String;
  begin
  ForI:=0toForm1.ListBox1.Items.Count-1do
  begin
  ForJ:=1toLength(PYIndexStr)do
  begin
  Hzchar:=Form1.ListBox1.Items[I][2*J-1] Form1.ListBox1.Items[I][2*J];
  if(PYIndexStr[J]<>'?')and(UpperCase(PYIndexStr[J])<>GetPyIndexChar(Hzchar))then
  gotoNotFound;
  end;
  Form1.ResultList1.Add(Form1.ListBox1.Items[I]);
  NotFound:
  end;
  end;

  procedureTForm1.Edit1Change(Sender:TObject);
  begin
  ifEdit1.Text<>''then
  begin
  ListBox2.Items.Clear;
  Form1.ResultList1.Clear;
  SearchByPyIndexStr(edit1.text);
  ListBox2.Items.AddStrings(ResultList1);
  end;
  end;

  procedureTForm1.FormShow(Sender:TObject);
  begin
  ResultList1:=TStringList.Create;
  end;

  procedureTForm1.FormDestroy(Sender:TObject);
  begin
  ResultList1.Free;
  end;

  procedureTForm1.Edit1Enter(Sender:TObject);
  begin
  Edit1.Text:='';
  end;

  procedureTForm1.Edit1Exit(Sender:TObject);
  begin
  Edit1.Text:='请输入声母';
  end;

  end.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多