📄 f_tools.pas
字号:
unit f_tools;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzButton, ExtCtrls, RzPanel, RzTabs, StdCtrls, Mask, RzEdit,
ActnList, Grids, DBGrids, RzDBGrid, DB;
type
Tfm_tool = class(TForm)
tab_tools: TRzPageControl;
tbs_mobile: TRzTabSheet;
tbs_IDCard: TRzTabSheet;
tbs_postcode: TRzTabSheet;
actlst_tools: TActionList;
act_mobile: TAction;
act_IDCard: TAction;
act_postcode: TAction;
act_areacode: TAction;
act_province: TAction;
act_city: TAction;
pnl_mobile: TPanel;
btn_mobile: TRzBitBtn;
Panel1: TPanel;
btn_IDCard: TRzBitBtn;
Panel2: TPanel;
btn_postcode: TRzBitBtn;
btn_province: TRzBitBtn;
btn_areacode: TRzBitBtn;
btn_city: TRzBitBtn;
mmo_mobile: TRzMemo;
mmo_IDCard: TRzMemo;
grd_postcode: TRzDBGrid;
ds_postcode: TDataSource;
edt_postcode: TRzEdit;
edt_areacode: TRzEdit;
edt_province: TRzEdit;
edt_city: TRzEdit;
edt_mobile: TRzEdit;
edt_IDCard: TRzEdit;
btn_exit: TRzBitBtn;
act_exit: TAction;
btn_exit1: TRzBitBtn;
btn_exit2: TRzBitBtn;
procedure act_postcodeExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure act_areacodeExecute(Sender: TObject);
procedure act_provinceExecute(Sender: TObject);
procedure act_cityExecute(Sender: TObject);
procedure act_mobileExecute(Sender: TObject);
procedure act_IDCardExecute(Sender: TObject);
procedure act_exitExecute(Sender: TObject);
procedure edt_mobileKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_IDCardKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_postcodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_provinceKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_areacodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure edt_cityKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fm_tool: Tfm_tool;
implementation
uses F_RDB, f_IDCard;
{$R *.dfm}
procedure Tfm_tool.act_postcodeExecute(Sender: TObject);
var
sql: string;
begin
if Length(Trim(edt_postcode.Text)) = 0 then
sql := 'select * from data'
else
sql := 'select * from data where 邮编 like''' +
Trim(edt_postcode.Text) + '''';
if RDB.dst_postalcode.Active then
RDB.dst_postalcode.Active := False;
RDB.dst_postalcode.CommandText := sql;
RDB.dst_postalcode.Active := True;
end;
procedure Tfm_tool.FormCreate(Sender: TObject);
begin
rdb.dst_postalcode.Active := True;
end;
procedure Tfm_tool.act_areacodeExecute(Sender: TObject);
var
sql: string;
begin
if Length(Trim(edt_areacode.Text)) = 0 then
sql := 'select * from data'
else
sql := 'select * from data where 区号 like''' +
Trim(edt_areacode.Text) + '''';
if RDB.dst_postalcode.Active then
RDB.dst_postalcode.Active := False;
RDB.dst_postalcode.CommandText := sql;
RDB.dst_postalcode.Active := True;
end;
procedure Tfm_tool.act_provinceExecute(Sender: TObject);
var
sql: string;
begin
if Length(Trim(edt_province.Text)) = 0 then
sql := 'select * from data'
else
sql := 'select * from data where 省名 like''' +
Trim(edt_province.Text) + '''';
if RDB.dst_postalcode.Active then
RDB.dst_postalcode.Active := False;
RDB.dst_postalcode.CommandText := sql;
RDB.dst_postalcode.Active := True;
end;
procedure Tfm_tool.act_cityExecute(Sender: TObject);
var
sql: string;
begin
if Length(Trim(edt_city.Text)) = 0 then
sql := 'select * from data'
else
sql := 'select * from data where 县市名 like''' +
Trim(edt_city.Text) + '''';
if RDB.dst_postalcode.Active then
RDB.dst_postalcode.Active := False;
RDB.dst_postalcode.CommandText := sql;
RDB.dst_postalcode.Active := True;
end;
procedure Tfm_tool.act_mobileExecute(Sender: TObject);
var
mobile: string;
begin
mobile := Trim(edt_mobile.Text);
if Length(mobile) <7 then
begin
Application.MessageBox('请输入手机号的至少前7位数字!', '提示', MB_OK +
MB_ICONINFORMATION);
Exit;
end;
mobile := Copy(mobile, 1, 7);
mobile := 'select * from mobile where 号码B <= ' + mobile
+ ' and 号码E >=' + mobile + '';
if RDB.dst_mobile.Active then
RDB.dst_mobile.Active := False;
RDB.dst_mobile.CommandText := mobile;
RDB.dst_mobile.Active := True;
RDB.dst_mobile.First;
mmo_mobile.Clear;
while not RDB.dst_mobile.Eof do
begin
mmo_mobile.Lines.Add('地区:' +
RDB.dst_mobile.FieldByName('地区').AsString);
mmo_mobile.Lines.Add('城市:' +
RDB.dst_mobile.FieldByName('城市').AsString);
mmo_mobile.Lines.Add('区号:' +
RDB.dst_mobile.FieldByName('区号').AsString);
mmo_mobile.Lines.Add('类型:' +
RDB.dst_mobile.FieldByName('类型').AsString);
RDB.dst_mobile.Next;
end;
end;
procedure Tfm_tool.act_IDCardExecute(Sender: TObject);
var
idcard, idcardnew, Card2, Card4, Card6, Sexal, jg, Sex, birthday: string;
begin
idcard := Trim(edt_IDCard.Text);
if Length(idcard) <> 15 then
if Length(idcard) <> 18 then
begin
Application.MessageBox('身份证号码应为15位或18位!', '错误',
MB_OK + MB_ICONSTOP);
Exit;
end;
Card6 := 'select * from idcard where bm=' + Copy(idcard, 1, 6) + '';
Card4 := 'select * from idcard where bm=' + Copy(idcard, 1, 4) + '';
Card2 := 'select * from idcard where bm=' + Copy(idcard, 1, 2) + '';
if Length(idcard) = 15 then
begin
Sexal := Copy(idcard, 15, 1);
ExpandIDNum(idcard, idcardnew);
birthday := '19' + Copy(idcard, 7, 2) + '年' + Copy(idcard, 9, 2) + '月' +
Copy(idcard, 11, 2) + '日';
end
else
begin
Sexal := Copy(idcard, 17, 1);
idcardnew := idcard;
birthday := Copy(idcard, 7, 4) + '年' + Copy(idcard, 11, 2) + '月' +
Copy(idcard, 13, 2) + '日';
end;
if RDB.dst_idcard.Active then
RDB.dst_idcard.Active := False;
RDB.dst_idcard.CommandText := Card6;
RDB.dst_idcard.Open;
if RDB.dst_idcard.RecordCount < 0 then
begin
RDB.dst_idcard.Active := False;
RDB.dst_idcard.CommandText := Card4;
RDB.dst_idcard.Open;
if RDB.dst_idcard.RecordCount < 0 then
begin
RDB.dst_idcard.Active := False;
RDB.dst_idcard.CommandText := Card2;
RDB.dst_idcard.Open;
if RDB.dst_idcard.RecordCount < 0 then
Exit;
end;
end;
RDB.dst_idcard.First;
mmo_IDCard.Clear;
while not RDB.dst_idcard.Eof do
begin
jg := RDB.dst_idcard.FieldByName('DQ').AsString;
case StrToInt(Sexal) of
1, 3, 5, 7, 9: Sex := '男';
else
Sex := '女';
end;
mmo_IDCard.Lines.Add('查身份证: ' + idcard);
mmo_IDCard.Lines.Add('原户籍地: ' + jg);
mmo_IDCard.Lines.Add('出生年月: ' + birthday);
mmo_IDCard.Lines.Add('新身份证: ' + idcardnew);
mmo_IDCard.Lines.Add('性 别: ' + Sex);
RDB.dst_idcard.Next;
end;
end;
procedure Tfm_tool.act_exitExecute(Sender: TObject);
begin
close;
end;
procedure Tfm_tool.edt_mobileKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
act_mobileExecute(Sender);
end;
procedure Tfm_tool.edt_IDCardKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
act_IDCardExecute(Sender);
end;
procedure Tfm_tool.edt_postcodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
act_postcodeExecute(Sender);
end;
procedure Tfm_tool.edt_provinceKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
act_provinceExecute(Sender);
end;
procedure Tfm_tool.edt_areacodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
act_areacodeExecute(Sender);
end;
procedure Tfm_tool.edt_cityKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key=13 then
act_cityExecute(Sender);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -