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:='請輸入聲母';
結尾;
結尾。