📄 umain.pas
字号:
unit umain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, ComCtrls, ImgList, DBGrids, StdCtrls, Menus, shellapi,
DB, ADODB, Buttons;
type
Tfrmmain = class(TForm)
Panel1: TPanel;
TreeView1: TTreeView;
Panel2: TPanel;
Panel3: TPanel;
dbgrdshow: TDBGrid;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
btnadd: TButton;
btnsave: TButton;
edtcondition: TEdit;
btnfind: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label8: TLabel;
Label9: TLabel;
Label11: TLabel;
Label12: TLabel;
Label14: TLabel;
Label15: TLabel;
Label17: TLabel;
edtname: TEdit;
edtage: TEdit;
edtename: TEdit;
edtadrtel: TEdit;
edttel: TEdit;
edtnation: TEdit;
edtqqnum: TEdit;
edtworktel: TEdit;
edtpostnum: TEdit;
edtaddress: TEdit;
edtemail: TEdit;
GroupBox3: TGroupBox;
btnrepair: TButton;
btnsaverep: TButton;
btndelete: TButton;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
ADOQuery1: TADOQuery;
Label7: TLabel;
Edit1: TEdit;
btfound: TButton;
Label13: TLabel;
edtkind: TEdit;
edtsex: TEdit;
GroupBox4: TGroupBox;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
ComboBox1: TComboBox;
edtbirthday: TEdit;
DataSource1: TDataSource;
procedure btnquitClick(Sender: TObject);
procedure btnaddClick(Sender: TObject);
procedure dbgrdshowDblClick(Sender: TObject);
procedure btnsaveClick(Sender: TObject);
procedure btndeleteClick(Sender: TObject);
procedure btnaboutClick(Sender: TObject);
procedure btnrepairClick(Sender: TObject);
procedure btnsaverepClick(Sender: TObject);
procedure TreeView1DblClick(Sender: TObject);
procedure btnfindClick(Sender: TObject);
procedure Label22Click(Sender: TObject);
procedure Label16Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure btfoundClick(Sender: TObject);
private
procedure formini();
procedure Edittextshow();
{ Private declarations }
public
{ Public declarations }
end;
var
frmmain: Tfrmmain;
implementation
uses about, Unit3, Unit5, Unit4;
{$R *.dfm}
procedure Tfrmmain.btnquitClick(Sender: TObject);
begin
frmmain.close;
end;
procedure Tfrmmain.formini();
begin
edtcondition.Text := '';
edtname.Text := '';
edtage.Text := '';
edit1.Text:= '';
edtename.Text := '';
edtadrtel.Text := '';
edttel.Text := '';
edtnation.Text := '';
edtqqnum.Text := '';
edtaddress.Text := '';
edtworktel.Text := '';
edtpostnum.Text := '';
edtaddress.Text := '';
edtemail.Text := '';
edtsex.text := ' ';
edtkind.text :='';
end;
function IsReadOnly(b: Boolean; colors: Tcolor): Boolean;
begin
with frmmain do
begin
edtname.ReadOnly := b; edtname.color := colors;
edtage.ReadOnly := b; edtage.color := colors;
edtename.ReadOnly := b; edtename.color := colors;
edtadrtel.ReadOnly := b; edtadrtel.color := colors;
edttel.ReadOnly := b; edttel.color := colors;
edtnation.ReadOnly := b; edtnation.color := colors;
edtqqnum.ReadOnly := b; edtqqnum.color := colors;
edtaddress.ReadOnly := b; edtaddress.color := colors;
edtworktel.ReadOnly := b; edtworktel.color := colors;
edtpostnum.ReadOnly := b; edtpostnum.color := colors;
edtaddress.ReadOnly := b; edtaddress.color := colors;
edtemail.ReadOnly := b; edtemail.color := colors;
edtsex.Enabled := not b; edtsex.color := colors;
edtkind.Enabled := not b; edtkind.color := colors;
edtbirthday.Enabled:=not b; edtbirthday.Color:=colors;
end;
end;
procedure Tfrmmain.btnfindClick(Sender: TObject);
begin
adotable1.Close;
datasource1.DataSet:=adoquery1;
with ADOquery1 do
begin
if combobox1.Text='姓名' then
begin
Close;
SQL.Clear;
sql.Add('select * from 表1 where 姓名=:姓名');
Parameters.ParamByName('姓名').Value:=edtcondition.Text;
end;
if combobox1.Text='编号' then
begin
close;
sql.Clear;
sql.Add('select * from 表1 where 编号=:编号');
Parameters.ParamByName('编号').Value:=edtcondition.Text;
end;
if combobox1.Text='QQ号码' then
begin
close;
sql.Clear;
sql.Add('select * from 表1 where OICQ号=:OICQ号');
Parameters.ParamByName('OICQ号').Value:=edtcondition.Text;
end;
open;
while not eof do
begin
edtname.Text:=fieldbyname('姓名').AsString;
edtage.Text:=fieldbyname('年龄').AsString;
edtnation.Text:=fieldbyname('民族').AsString;
edit1.Text:=fieldbyname('编号').AsString;
edtqqnum.Text:=fieldbyname('OICQ号').AsString;
edtename.Text:=fieldbyname('网名').AsString;
edtadrtel.Text:=fieldbyname('住宅电话').AsString;
edttel.Text:=fieldbyname('手机号码').AsString;
edtaddress.Text:=fieldbyname('家庭住址').AsString;
edtpostnum.Text:=fieldbyname('邮政编码').AsString;
edtworktel.Text:=fieldbyname('单位电话').AsString;
edtemail.Text:=fieldbyname('E-mail').AsString;
edtsex.Text:=fieldbyname('性别').AsString;
edtkind.Text:=fieldbyname('类型').AsString;
edtbirthday.Text:=fieldbyname('生日').AsString;
next;
end;
if recordcount=0 then
showmessage('没有关于这个人的信息!');
end;
end;
procedure Tfrmmain.btnaddClick(Sender: TObject);
begin
formini;
IsReadOnly(False, clWindow);
edtname.SetFocus;
end;
procedure Tfrmmain.dbgrdshowDblClick(Sender: TObject);
begin
adotable1.Open;
datasource1.DataSet:=adotable1;
try
with ADOtable1 do
begin
edtname.Text := FieldValues['姓名'];
edtsex.Text := FieldValues['性别'];
edtage.Text := FieldValues['年龄'];
edtename.Text := FieldValues['网名'];
edtadrtel.Text := FieldValues['住宅电话'];
edttel.Text := FieldValues['手机号码'];
edtnation.Text := FieldValues['民族'];
edtqqnum.Text := FieldValues['OICQ号'];
edtaddress.Text := FieldValues['家庭住址'];
edtworktel.Text := FieldValues['单位电话'];
edtpostnum.Text := FieldValues['邮政编码'];
edtemail.Text := FieldValues['E-MAIL'];
edit1.Text := FieldValues['编号'];
edtkind.Text := FieldValues['类型'];
edtbirthday.Text := FieldValues['生日'];
// edtpostnum.Text := FieldValues['出生年月'];
end;
btnrepair.Enabled := True;
btnsaverep.Enabled := True;
except
end;
end;
procedure Tfrmmain.Edittextshow;
begin
with ADOtable1 do
begin
FieldByName('姓名').AsString := Trim(edtname.Text);
FieldByName('年龄').AsInteger := StrToInt(Trim(edtage.Text));
FieldByName('编号').AsInteger := StrToInt(Trim(edit1.Text));
FieldByName('网名').AsString := Trim(edtename.Text);
FieldByName('住宅电话').AsString := Trim(edtadrtel.Text);
FieldByName('手机号码').AsString := Trim(edttel.Text);
FieldByName('民族').AsString := Trim(edtnation.Text);
FieldByName('OICQ号').AsString := Trim(edtqqnum.Text);
FieldByName('家庭住址').AsString := Trim(edtaddress.Text);
FieldByName('单位电话').AsString := Trim(edtworktel.Text);
FieldByName('邮政编码').AsString := Trim(edtpostnum.Text);
FieldByName('E-mail').AsString := Trim(edtemail.Text);
FieldByName('生日').AsString := Trim(edtbirthday.Text);
FieldByName('性别').AsString :=edtsex.Text;
FieldByName('类型').AsString := edtkind.Text;
end;
end;
procedure Tfrmmain.btnsaveClick(Sender: TObject);
begin
if (edtname.Text <> '') and (edtkind.Text <> '') and (edtsex.Text <> '') then
begin
with ADOtable1 do
begin
Edit;
if MessageBox(0, '是否增加本条信息?', '询问', MB_YESNO + MB_ICONQUESTION)
= IDYES then
begin
Append;
Edittextshow;
Post;
if MessageBox(0, '增加信息成功,是否还增加' + #13#10 +
' 其他信息?', '询问', MB_YESNO) = IDYES then
begin
formini;
edtname.SetFocus;
end
else
begin
formini;
IsReadOnly(True, cl3DLight);
end;
end;
end;
end
else
MessageBox(0, '请确认姓名,性别,类型' + #13#10 + ' 信息的完整性! ', '提示',
MB_OK );
end;
procedure Tfrmmain.btndeleteClick(Sender: TObject);
begin
if Messagedlg('你真的要删除本条信息吗?',mtwarning, [mbYES,mbNO],0)=
mrYES then
begin
ADOtable1.Delete;
if ADOtable1.RecordCount <> 0 then
begin
ADOtable1.First;
frmmain.dbgrdshowDblClick(nil);
end;
end;
end;
procedure Tfrmmain.btnaboutClick(Sender: TObject);
begin
try
frmabout.ShowModal;
finally
frmabout.Free;
end;
end;
procedure Tfrmmain.btnrepairClick(Sender: TObject);
begin
IsReadOnly(false, clWindow);
edtname.SetFocus;
end;
procedure Tfrmmain.btnsaverepClick(Sender: TObject);
begin
if (edtname.Text <> ' ') and (edtkind.Text <> ' ') and (edtsex.Text <> '') then
begin
with ADOtable1 do
begin
Edit;
if MessageBox(0, '是否修改本条信息?', '询问', MB_YESNO + MB_ICONQUESTION)
= IDYES then
begin
Edittextshow;
Post;
if MessageBox(0, '修改信息成功,是否还修改' + #13#10 +
' 其他信息?', '询问', MB_YESNO + MB_ICONQUESTION) = IDYES then
begin
First;
dbgrdshowDblClick(nil);
edtname.SetFocus;
end
else
formini;
IsReadOnly(True, cl3DLight);
end;
end;
end
else
MessageBox(0, '请确认姓名,性别,类型' + #13#10 + ' 信息的完整性! ', '提示',
MB_OK );
end;
procedure Tfrmmain.TreeView1DblClick(Sender: TObject);
var str: string;
i: Integer;
begin
str:= TreeView1.Selected.Text;
with ADOQuery1 do
begin
Close;
SQL.Clear;
i:= TreeView1.Selected.Index;
if i in [0, 1, 2, 3, 4, 5] then
SQL.Text := 'select * from 表1 where 类型 = ''' + str + '''order by ''' + str + '''';
if i in [6] then
SQL.Text := 'select * from 表1';
Open;
First;
if ADOQuery1.RecordCount < 0 then
MessageBox(0, '没有找到相关的信息!', '提示', MB_OK + MB_ICONINFORMATION)
else
MessageBox(0, pchar('共查找到' + IntToStr(ADOQuery1.RecordCount) + '条记录!'), '询问', MB_OK + MB_ICONINFORMATION);
end;
end;
procedure Tfrmmain.Label22Click(Sender: TObject);
begin
frmmain.Close;
end;
procedure Tfrmmain.Label16Click(Sender: TObject);
begin
musform.show;
end;
procedure Tfrmmain.BitBtn1Click(Sender: TObject);
begin
musform.Show;
end;
procedure Tfrmmain.BitBtn7Click(Sender: TObject);
begin
frmmain.Close;
end;
procedure Tfrmmain.BitBtn4Click(Sender: TObject);
begin
shellexecute(handle,nil,pchar('e:\电子通讯\love.exe'),nil,nil,sw_shownormal);
end;
procedure Tfrmmain.BitBtn5Click(Sender: TObject);
begin
shellexecute(handle,nil,pchar('e:\电子通讯\wzq.exe'),nil,nil,sw_shownormal);
end;
procedure Tfrmmain.BitBtn6Click(Sender: TObject);
begin
shellexecute(handle,nil,pchar('e:\电子通讯\俄罗斯.exe'),nil,nil,sw_shownormal);
end;
procedure Tfrmmain.BitBtn3Click(Sender: TObject);
begin
form5.show;
end;
procedure Tfrmmain.BitBtn2Click(Sender: TObject);
begin
helform.show;
end;
procedure Tfrmmain.btfoundClick(Sender: TObject);
begin
adotable1.Close;
datasource1.DataSet:=adoquery1;
with adoquery1 do
begin
if combobox1.Text='姓名' then
begin
close;
SQL.Clear;
SQL.Add('select * from 表1 where 姓名 like ''%'+edtcondition.Text+'%'' order by 姓名');
end
else if combobox1.Text='编号' then
begin
close;
sql.Clear;
sql.Add('select * from 表1 where 编号 like ''%'+edtcondition.Text+'%'' order by 编号');
end
else if combobox1.Text='QQ号码' then
begin
close;
sql.Clear;
sql.Add('select * from 表1 where OICQ号 like ''%'+edtcondition.Text+'%'' order by OICQ号');
end;
Open;
while not eof do
begin
edtname.Text:=fieldbyname('姓名').AsString;
edtage.Text:=fieldbyname('年龄').AsString;
edtnation.Text:=fieldbyname('民族').AsString;
edit1.Text:=fieldbyname('编号').AsString;
edtqqnum.Text:=fieldbyname('OICQ号').AsString;
edtename.Text:=fieldbyname('网名').AsString;
edtadrtel.Text:=fieldbyname('住宅电话').AsString;
edttel.Text:=fieldbyname('手机号码').AsString;
edtaddress.Text:=fieldbyname('家庭住址').AsString;
edtpostnum.Text:=fieldbyname('邮政编码').AsString;
edtworktel.Text:=fieldbyname('单位电话').AsString;
edtemail.Text:=fieldbyname('E-mail').AsString;
edtsex.Text:=fieldbyname('性别').AsString;
edtkind.Text:=fieldbyname('类型').AsString;
edtbirthday.Text:=fieldbyname('生日').AsString;
next;
end;
if recordcount=0 then
showmessage('无该人记录');
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -