📄 chind_address.pas
字号:
unit Chind_Address;
interface
uses
Windows, Messages, Classes, SysUtils, Graphics, Controls, StdCtrls, Forms,
Dialogs, DBCtrls, DB, Grids, DBGrids, Mask, ComCtrls, ExtCtrls, DBTables,
Buttons;
type
Tfrm_Address = class(TForm)
Panel1: TPanel;
DataSource1: TDataSource;
Query1: TQuery;
DBNavigator: TDBNavigator;
Panel3: TPanel;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Label4: TLabel;
Label7: TLabel;
Label8: TLabel;
Label5: TLabel;
Label3: TLabel;
Label9: TLabel;
EditDBEdit: TDBEdit;
EditDBEdit2: TDBEdit;
EditDBEdit5: TDBEdit;
EditDBEdit3: TDBEdit;
EditDBEdit4: TDBEdit;
EditDBEdit7: TDBEdit;
EditDBEdit6: TDBEdit;
EditEMAIL: TDBEdit;
DBComboBox1: TDBComboBox;
TabSheet2: TTabSheet;
Panel2: TPanel;
Label22: TLabel;
Label20: TLabel;
Label23: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
Label26: TLabel;
Edit_name: TEdit;
Edit_tel: TEdit;
Edit_address: TEdit;
RadioGroup1: TRadioGroup;
ComboBox_sex: TComboBox;
DBGrid1: TDBGrid;
TabSheet3: TTabSheet;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
SpeedButton3: TSpeedButton;
Label15: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
CheckBox1: TCheckBox;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Table1: TTable;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure PageControl1Change(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure DataSource1DataChange(Sender: TObject; Field: TField);
procedure FormActivate(Sender: TObject);
private
procedure AllRec;
{ private declarations }
public
{ public declarations }
end;
var
frm_Address: Tfrm_Address;
implementation
uses Main, prt_Letter;
{$R *.DFM}
procedure Tfrm_Address.AllRec;
begin
with Query1 do
begin
SQL.Clear;
SQL.Add('SELECT * FROM "AddressList.db"');
Prepare;
ExecSQL;
Open;
end;
end;
procedure Tfrm_Address.FormCreate(Sender: TObject);
begin
Height:=Constraints.MinHeight;
Width:=Constraints.MinWidth;
Panel1.Align:=alTop;
Panel3.Align:=alClient;
PageControl1.Align:=alClient;
PageControl1.ActivePageIndex:=0;
DBGrid1.Align:=alClient;
Table1.DatabaseName:=MainForm.GetExePath+'mdb';
Table1.TableName:='AddressList.DB';
Query1.DatabaseName:=MainForm.GetExePath+'mdb';
AllRec;
table1.Open;
end;
procedure Tfrm_Address.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Query1.Close;
table1.Close;
with Mainform do
begin
// StatusBar.Panels[1].Text:='通讯录已关闭闭';
if MDIChildCount=1 then
StatusBar.Panels[1].Text:='';
end;
Action:=caFree;
end;
procedure Tfrm_Address.PageControl1Change(Sender: TObject);
begin
case PageControl1.ActivePageIndex of
0:begin
if Table1.ReadOnly then
begin
Table1.Active:=false;
Table1.ReadOnly:=False;
Table1.Active:=True;
end;
DataSource1.DataSet:=Table1;
Table1.Open;
end;
1:begin
DataSource1.DataSet:=Query1;
// AllRec;
end;
2:begin
Table1.Active:=false;
Table1.ReadOnly:=True;
Table1.Active:=True;
DataSource1.DataSet:=Table1;
Edit1.Text:=DBEdit2.Text;
Edit2.Text:=DBEdit3.Text;
// AllRec;
end;
end;
end;
procedure Tfrm_Address.SpeedButton2Click(Sender: TObject);
begin
AllRec;
end;
procedure Tfrm_Address.SpeedButton1Click(Sender: TObject);
var
SQLStr,SQLAll,Log:String;
SQLTemp:Pchar;
arrstr:array[1..5]of String;
i,l:integer;
function getsth(CurrEdit:TEdit):boolean;
begin
result:=false;
if CurrEdit.Text<>'' then
result:=true;
end;
begin
SQLAll:='';
SQLStr:='SELECT * FROM "AddressList.db" WHERE ';
if RadioGroup1.ItemIndex=1 then Log:='OR' else Log:='AND';
if Getsth(Edit_name) then
arrstr[1]:='(姓名='''+Edit_name.Text+''')';
arrstr[2]:=ComboBox_sex.text;
if arrstr[2]<>'' then
arrstr[2]:='(性别='''+arrstr[2]+''')';
if Getsth(Edit_Tel) then
arrstr[3]:='(电话='''+Edit_Tel.Text+''')';
if Getsth(Edit_Address) then
arrstr[4]:='(地址='''+Edit_Address.Text+''')';
arrstr[5]:='';
for i:=1 to 4 do
begin
arrstr[5]:=arrstr[5]+arrstr[i];
if arrstr[i]<>'' then
SQLAll:=SQLAll+Log+arrstr[i];
end;
if arrstr[5]='' then
begin
showmessage('没有查询项目?');
exit;
end;
l:=strlen(Pchar(SQLAll));
GetMem(SQLTemp,l);
SQLTemp^ := Chr(0);
if SQLAll[1]='O' then
StrCat(SQLTemp,Pchar(SQLAll)+2);
if SQLAll[1]='A' then
StrCat(SQLTemp,Pchar(SQLAll)+3);
SQLStr:=SQLStr+SQLTemp+' ORDER BY 姓名,性别,电话,地址';
FreeMem(SQLTemp);
// Application.MessageBox(Pchar(SQLStr),'预查询的SQL语句',MB_OK);
with Query1 do
begin
SQL.Clear;
SQL.Add(SQLStr);
Prepare;
ExecSQL;
Open;
end;
end;
procedure Tfrm_Address.SpeedButton3Click(Sender: TObject);
var
LettName,LettSex,LettAdd1,LettAdd2,LettPost1,LettPost2:String;
begin
LettName:=DBEdit1.Text;
LettAdd2:=Edit3.Text;
LettPost2:=Edit4.Text;
if DBEdit4.Text='' then LettSex:='(收)' else
if DBEdit4.Text='男' then LettSex:='先生(收)' else
if DBEdit4.Text='女' then LettSex:='小姐(收)';
Application.CreateForm(Tfrm_prt_letter,frm_prt_letter);
if CheckBox1.Checked then
begin
if (Edit1.Text='')or(Edit2.Text='')then
begin
ShowMessage('请输入邮编和地址');
exit;
end else
begin
LettAdd1:=Edit1.Text;
LettPost1:=Edit2.Text;
end;
end else
begin
LettAdd1:=DBEdit2.Text;
LettPost1:=DBEdit3.Text;
end;
with frm_prt_letter do
begin
Label1.Caption:=LettPost1;
Label2.Caption:=LettAdd1;
Label3.Caption:=LettName;
Label4.Caption:=LettSex;
Label5.Caption:=LettAdd2;
Label6.Caption:=LettPost2;
Show;
end;
end;
procedure Tfrm_Address.DataSource1DataChange(Sender: TObject;
Field: TField);
begin
FormActivate(Sender);
end;
procedure Tfrm_Address.FormActivate(Sender: TObject);
begin
MainForm.StatusBar.Panels[1].Text:='通讯录纪录导航信息:第'+inttostr(DataSource1.DataSet.RecNo)+'笔纪录-总共'+inttostr(DataSource1.DataSet.RecordCount)+'笔纪录';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -