打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

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.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
​delphi学习点滴——用拼音首字母来实现检索功能
控制Delphi的窗口显示位置的方法1
DELPHI的奇异菜单的编写
delphi十个小技巧
如何把一个文本列表添加到 TListBox 并避免重复项
Delphi XE2 之 FireMonkey 入门(34)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服