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

王朝delphi·作者佚名  2006-01-09
宽屏版  字体: |||超大  

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

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls;

type

TForm1 = class(TForm)

ListBox1: TListBox;

ListBox2: TListBox;

Edit1: TEdit;

Label1: TLabel;

procedure Edit1Change(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure FormDestroy(Sender: TObject);

procedure Edit1Enter(Sender: TObject);

procedure Edit1Exit(Sender: TObject);

private

{ Private declarations }

public

ResultList1:TStrings;

end;

var

Form1: TForm1;

procedure SearchByPyIndexStr(PYIndexStr :string);

implementation

{$R *.DFM}

function GetPyIndexChar(Hzchar:string):String;

begin

case (Word(hzchar[1]) shl 8 + 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;

procedure SearchByPyIndexStr(PYIndexStr :string);

label NotFound;

var

I, J :Integer;

Hzchar :String;

begin

For I:=0 to Form1.ListBox1.Items.Count-1 do

begin

For J:=1 to Length(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

goto NotFound;

end;

Form1.ResultList1.Add(Form1.ListBox1.Items[I]);

NotFound:

end;

end;

procedure TForm1.Edit1Change(Sender: TObject);

begin

if Edit1.Text<>'' then

begin

ListBox2.Items.Clear;

Form1.ResultList1.Clear;

SearchByPyIndexStr(edit1.text);

ListBox2.Items.AddStrings(ResultList1);

end;

end;

procedure TForm1.FormShow(Sender: TObject);

begin

ResultList1:=TStringList.Create;

end;

procedure TForm1.FormDestroy(Sender: TObject);

begin

ResultList1.Free;

end;

procedure TForm1.Edit1Enter(Sender: TObject);

begin

Edit1.Text:='';

end;

procedure TForm1.Edit1Exit(Sender: TObject);

begin

Edit1.Text:='请输入声母';

end;

end.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有