Delphi中实现汉字拼音声母查询,单位::
单位1;
界面
用途
Windows,Messages,Sysutils,类,图形,控件,表单,对话框,
stdctrls;
类型
tform1 = class(tform)
ListBox1:tlistbox;
ListBox2:tlistbox;
edit1:tedit;
标签1:tlabel;
过程edit1change(发件人:tobject);
过程formshow(发件人:tobject);
过程FormDestroy(发件人:tobject);
过程Edit1enter(发送者:tobject);
过程Edit1Exit(发送者:tobject);
私人的
{私人声明}
民众
resultlist1:tstrings;
结尾;
var
form1:tform1;
过程searchBypyIndexstr(pyindexstr:string);
执行
{$ r *.dfm}
函数getPyIndexChar(hzchar:string):string;
开始
案例(word(hzchar [1])shl 8 + word(hzchar [2]))
$ b0a1 .. $ b0c4:结果:='a';
$ b0c5 .. $ b2c0:结果:='b';
$ b2c1 .. $ b4ed:结果:='c';
$ b4ee .. $ b6e9:结果:='d';
$ b6ea .. $ b7a1:结果:='e';
$ b7a2 .. $ b8c0:结果:='f';
$ b8c1 .. $ b9fd:结果:='g';
$ b9fe .. $ bbf6:结果:='h';
$ bbf7 .. $ bfa5:结果:='j';
$ bfa6 .. $ c0ab:结果:='k';
$ c0ac .. $ c2e7:结果:='l';
$ C2E8 .. $ C4C2:结果:='M';
$ C4C3 .. $ C5B5:结果:='n';
$ C5B6 .. $ C5BD:结果:='o';
$ C5BE .. $ C6D9:结果:='P';
$ c6da .. $ c8ba:结果:='q';
$ c8bb .. $ c8f5:结果:='r';
$ c8f6 .. $ cbf9:结果:='s';
$ cbfa .. $ cdd9:结果:='t';
$ CDDA .. $ CEF3:结果:='W';
$ cef4 .. $ d1b8:结果:='x';
$ d1b9 .. $ d4d0:结果:='y';
$ d4d1 .. $ d7f9:结果:='z';
别的
结果:= char(0);
结尾;
结尾;
过程searchBypyIndexstr(pyindexstr:string);
标签NOTUND;
var
I,J:Integer;
HZCHAR:字符串;
开始
对于i:= 0 to form1.listbox1.items.count-1做
开始
对于j:= 1到长度(pyindexstr)做
开始
hzchar:= form1.listbox1.items [i] [2*j-1]+form1.listbox1.items [i] [2*j];
if(pyindexstr [j] <>'?')和(uppercase(pyindexstr [j])<> getPypyIndexchar(hzchar)),然后
毫无根据;
结尾;
form1.resultlist1.add(form1.listbox1.items [i]);
未找到:
结尾;
结尾;
过程tform1.edit1change(发件人:tobject);
开始
如果edit1.text <>'',则
开始
ListBox2.Items.Clear;
form1.resultlist1.clear;
searchBypyIndexstr(edit1.text);
ListBox2.Items.AddStrings(resultlist1);
结尾;
结尾;
过程tform1.formshow(发件人:tobject);
开始
resultlist1:= tstringlist.create;
结尾;
过程tform1.formdestroy(发件人:tobject);
开始
resultlist1.free;
结尾;
过程tform1.edit1enter(发送者:tobject);
开始
edit1.text:='';
结尾;
过程tform1.edit1exit(发件人:tobject);
开始
edit1.text:='请输入声母';
结尾;
结尾。