unit Unit2;interfaceuses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}
function GetChinaChar(ChinaChar:String):Char;
//获取指定汉字的拼音字母
begin
case WORD(ChinaChar[1]) shl 8 + WORD(ChinaChar[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..$D188 : Result := 'X';
$D1B9..$D4D0 : Result := 'Y';
$D4D1..$D7F9 : Result := 'Z';
else
Result := char(0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin showmessage(GetChinaChar(edit1.text));
showmessage(GetChinaChar(edit2.text));
showmessage(GetChinaChar(edit3.text));
edit4.Text:=GetChinaChar(edit1.text)+GetChinaChar(edit2.text)+GetChinaChar(edit3.text);
end;procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
str:string;
begin
// showmessage(WORD(ChinaChar[1]) shl 8 + WORD(ChinaChar[2]));
i:=1;
while i<=length(edit5.text) do
begin
str:=copy(edit5.text,i,2);
showmessage(GetChinaChar(str));
edit4.Text:=edit4.text+getchinachar(str);
i:=i+2;
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
//一个汉字的大小是两个字母的大小
showmessage(inttostr(word('林'[1])));//word是取出汉字的第一个字节的二进制码
showmessage(inttostr(word('林'[2])));//word是取出汉字的第二个字节的二进制码
showmessage(inttostr(WORD('林'[1]) shl 8 + WORD('谷'[2])));//shl是左移。将第一个字节左移8位后加上第二个字节既是该字的二进制码;
end;end.
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Button2: TButton;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.DFM}
function GetChinaChar(ChinaChar:String):Char;
//获取指定汉字的拼音字母
begin
case WORD(ChinaChar[1]) shl 8 + WORD(ChinaChar[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..$D188 : Result := 'X';
$D1B9..$D4D0 : Result := 'Y';
$D4D1..$D7F9 : Result := 'Z';
else
Result := char(0);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin showmessage(GetChinaChar(edit1.text));
showmessage(GetChinaChar(edit2.text));
showmessage(GetChinaChar(edit3.text));
edit4.Text:=GetChinaChar(edit1.text)+GetChinaChar(edit2.text)+GetChinaChar(edit3.text);
end;procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
str:string;
begin
// showmessage(WORD(ChinaChar[1]) shl 8 + WORD(ChinaChar[2]));
i:=1;
while i<=length(edit5.text) do
begin
str:=copy(edit5.text,i,2);
showmessage(GetChinaChar(str));
edit4.Text:=edit4.text+getchinachar(str);
i:=i+2;
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
//一个汉字的大小是两个字母的大小
showmessage(inttostr(word('林'[1])));//word是取出汉字的第一个字节的二进制码
showmessage(inttostr(word('林'[2])));//word是取出汉字的第二个字节的二进制码
showmessage(inttostr(WORD('林'[1]) shl 8 + WORD('谷'[2])));//shl是左移。将第一个字节左移8位后加上第二个字节既是该字的二进制码;
end;end.
解决方案 »
- fastreport直接打印
- 如何实现在 Edit 中让内容据中
- 如何在TChart中实现非线性的轴?
- 请问如何得到上月的一号以及上月的最后一天.100分,谢谢
- 安装了Delphi2005的兄弟们注意了,举手之劳,先行谢过
- 请问如何得到当前RichEdit控件当前可显示的最多行数,为什么用RichEdit.Height/abs(RichEdit.Font.Height)不行???
- 帮我找一篇文章delphi与数据库相关的英文文章以及他的译文
- 请问如何锁定一个窗口?
- ActiveForm窗体问题
- fastreport打印机设置问题
- TADOConnection.open与close,TADOTable.open与close 会抛出什么异常和错误呢?
- Delphi6动态打印报表
太感谢了!给分!