📄 idn_main.pas
字号:
unit idn_main;
interface
uses
ascidnum,
ShellAPI,
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TfIDNMain = class(TForm)
leIDNum: TLabeledEdit;
bCheck: TButton;
bClose: TButton;
gbInfo: TGroupBox;
leRegionCode: TLabeledEdit;
leRegionStr: TLabeledEdit;
leBirthday: TLabeledEdit;
leSex: TLabeledEdit;
leChecksum: TLabeledEdit;
leIDNumType: TLabeledEdit;
Bevel1: TBevel;
lRemark: TLabel;
lAuthor: TLabel;
lEmailMark: TLabel;
lHomepageMark: TLabel;
lEmail: TLabel;
lHomepage: TLabel;
procedure bCloseClick(Sender: TObject);
procedure bCheckClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure lEmailMouseEnter(Sender: TObject);
procedure lEmailMouseLeave(Sender: TObject);
procedure lHomepageMouseEnter(Sender: TObject);
procedure lHomepageMouseLeave(Sender: TObject);
procedure lEmailClick(Sender: TObject);
procedure lHomepageClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fIDNMain: TfIDNMain;
implementation
{$R *.dfm}
procedure TfIDNMain.bCloseClick(Sender: TObject);
begin
Close;
end;
procedure TfIDNMain.bCheckClick(Sender: TObject);
var
IDNumInfo : TIDNumInfo;
begin
if GetIDNumInfo(leIDNum.Text, IDNumInfo) then
begin
case IDNumInfo.IDNumType of
idnum15 : leIDNumType.Text := '15位号码';
idnum18 : leIDNumType.Text := '18位号码';
end;
leRegionCode.Text := IDNumInfo.RegionCode;
if GetRegionStr(IDNumInfo) then
leRegionStr.Text := IDNumInfo.RegionStr
else
leRegionStr.Text := '未知';
leBirthday.Text := FormatDateTime('yyyy"年"m"月"d"日"', IDNumInfo.BirthDay);
case IDNumInfo.Sex of
sexMale : leSex.Text := '男';
sexFemale : leSex.Text := '女';
else
leSex.Text := '未知';
end;
case IDNumInfo.ChecksumRst of
csNoChecksum : leChecksum.Text := '无校验';
csChecksumError : leChecksum.Text := '校验错误';
csChecksumCorrect : leChecksum.Text := '校验正确';
end;
end else
begin
ShowMessage('输入的身份证号码不正确。');
leIDNumType.Clear;
leRegionCode.Clear;
leRegionStr.Clear;
leBirthday.Clear;
leSex.Clear;
leChecksum.Clear;
end;
end;
procedure TfIDNMain.FormCreate(Sender: TObject);
begin
if not LoadRegionDat('regioncode.dat') then
ShowMessage('找不到区划定义数据文件。');
end;
procedure TfIDNMain.lEmailMouseEnter(Sender: TObject);
begin
lEmail.Font.Color := clHighlightText;
lEmail.Font.Style := [fsUnderline];
end;
procedure TfIDNMain.lEmailMouseLeave(Sender: TObject);
begin
lEmail.Font.Color := clWindowText;
lEmail.Font.Style := [];
end;
procedure TfIDNMain.lHomepageMouseEnter(Sender: TObject);
begin
lHomepage.Font.Color := clHighlightText;
lHomepage.Font.Style := [fsUnderline];
end;
procedure TfIDNMain.lHomepageMouseLeave(Sender: TObject);
begin
lHomepage.Font.Color := clWindowText;
lHomepage.Font.Style := [];
end;
procedure TfIDNMain.lEmailClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', PCHAR('mailto:' + lEmail.Caption), '', '', SW_SHOWNORMAL);
end;
procedure TfIDNMain.lHomepageClick(Sender: TObject);
begin
ShellExecute(Handle, 'open', PCHAR(lHomepage.Caption), '', '', SW_SHOWNORMAL);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -