Delphi 中实现汉字拼音声母查询, unidade 代码如下:
unidade de unidade1;
interface
usos
Windows, mensagens, sysutils, aulas, gráficos, controles, formulários, diálogos,
Stdctrls;
tipo
Tform1 = classe (tform)
ListBox1: tlistBox;
ListBox2: tlistBox;
Edit1: TEDIT;
Label1: Tlabel;
Procedimento Edit1Change (remetente: Tobject);
Procedimento Formshow (remetente: Tobject);
procedimento formDestroy (remetente: tabjas);
Procedimento Edit1Enter (remetente: Tobject);
Procedimento Edit1Exit (remetente: TOBJECT);
privado
{Declarações privadas}
público
ResultList1: TStrings;
fim;
var
Form1: TForm1;
procedimento searchbypyIndexstr (pyindexstr: string);
implementação
{$ R *.dfm}
função getpyIndexchar (hzchar: string): string;
começar
caso (palavra (hzchar [1]) shl 8 + word (hzchar [2])) de
$ B0A1 .. $ B0C4: Resultado: = 'A';
$ B0C5 .. $ B2C0: Resultado: = 'B';
$ B2C1 .. $ B4ED: Resultado: = 'C';
$ B4ee .. $ b6e9: resultado: = 'd';
$ B6ea .. $ b7a1: resultado: = 'e';
$ B7a2 .. $ b8c0: resultado: = 'f';
$ B8C1 .. $ B9FD: Resultado: = 'G';
$ B9fe .. $ bbf6: resultado: = 'h';
$ BBF7 .. $ BFA5: Resultado: = 'J';
$ BFA6 .. $ C0AB: Resultado: = 'K';
$ C0ac .. $ c2e7: resultado: = 'l';
$ C2E8 .. $ C4C2: Resultado: = 'M';
$ C4c3 .. $ c5b5: resultado: = 'n';
$ C5B6 .. $ C5BD: Resultado: = 'O';
$ C5BE .. $ C6D9: Resultado: = 'P';
$ C6DA .. $ C8BA: Resultado: = 'Q';
$ C8BB .. $ C8F5: Resultado: = 'R';
$ C8F6 .. $ CBF9: Resultado: = 'S';
$ CBFA .. $ CDD9: Resultado: = 'T';
$ CDDA .. $ CEF3: Resultado: = 'W';
$ CEF4 .. $ D1B8: Resultado: = 'X';
$ D1b9 .. $ d4d0: resultado: = 'y';
$ D4d1 .. $ d7f9: resultado: = 'z';
outro
Resultado: = char (0);
fim;
fim;
procedimento searchbypyIndexstr (pyindexstr: string);
etiqueta notfound;
var
I, J: Inteiro;
Hzchar: string;
começar
Para i: = 0 a form1.listbox1.items.count-1 do
começar
Para j: = 1 a comprimento (pyindexstr)
começar
Hzchar: = form1.listbox1.items [i] [2*j-1]+form1.listbox1.items [i] [2*j];
if (pyindexstr [j] <> '?') e (uppercase (pyindexstr [j]) <> getpyIndexchar (hzchar)) então
Goto Notfound;
fim;
Form1.resultList1.add (form1.listbox1.items [i]);
Notfound:
fim;
fim;
Procedimento TForm1.edit1Change (remetente: TObject);
começar
se edit1.text <> '' então
começar
Listbox2.items.clear;
Form1.ResultList1.clear;
SearchByPyIndexstr (edit1.text);
Listbox2.items.addstrings (ResultList1);
fim;
fim;
procedimento tform1.formshow (remetente: tabjas);
começar
Resultadolist1: = tStringList.create;
fim;
procedimento TFFORM1.FORMDESTROY (remetente: Tobject);
começar
Resultadolist1.free;
fim;
Procedimento TForm1.edit1Enter (remetente: Tobject);
começar
Edit1.text: = '';
fim;
Procedimento TForm1.edit1Exit (remetente: Tobject);
começar
Edit1.text: = '' ';
fim;
fim.