📄 mainunit.pas
字号:
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls, Mask, DBCtrls, Grids, DBGrids,
TabNotBk,DBTables,DB;
type
TfrmMain = class(TForm)
MainMenu: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
GroupBox1: TGroupBox;
btn_First: TButton;
btn_Next: TButton;
btn_Prev: TButton;
btn_Last: TButton;
GroupBox2: TGroupBox;
btn_Add: TButton;
btn_Update: TButton;
btn_Edit: TButton;
btn_Delete: TButton;
mnu_Exit: TMenuItem;
mnu_Grid: TMenuItem;
mnu_Text: TMenuItem;
Saperator: TMenuItem;
mnu_Transact: TMenuItem;
mnu_UserManager: TMenuItem;
TabbedNotebook: TTabbedNotebook;
GroupBox3: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
MailCost: TDBEdit;
MailHigtht: TDBEdit;
AirPlane: TDBCheckBox;
ReceiverNum: TDBEdit;
ReceiverAddress: TDBEdit;
Receiver: TDBEdit;
SenderNum: TDBEdit;
SenderAddress: TDBEdit;
Sender: TDBEdit;
MailNum: TDBEdit;
DBGrid: TDBGrid;
procedure mnu_ExitClick(Sender: TObject);
procedure mnu_GridClick(Sender: TObject);
procedure mnu_TransactClick(Sender: TObject);
procedure mnu_UserManagerClick(Sender: TObject);
procedure mnu_TextClick(Sender: TObject);
procedure btn_FirstClick(Sender: TObject);
procedure btn_PrevClick(Sender: TObject);
procedure btn_NextClick(Sender: TObject);
procedure btn_LastClick(Sender: TObject);
procedure btn_AddClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
function CheckPassword:Boolean;
procedure btn_EditClick(Sender: TObject);
procedure btn_DeleteClick(Sender: TObject);
procedure btn_UpdateClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
uses
ModuleUnit,MailUnit,UserManUnit,PasswordUnit,StartUnit;
procedure TfrmMain.mnu_ExitClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmMain.mnu_GridClick(Sender: TObject);
begin
self.TabbedNotebook.PageIndex:=1;
end;
procedure TfrmMain.mnu_TransactClick(Sender: TObject);
begin
frmTransact:=TfrmTransact.Create(self);
frmTransact.ShowModal;
frmTransact.Free;
end;
procedure TfrmMain.mnu_UserManagerClick(Sender: TObject);
begin
UserMan:=TUserMan.Create(self);
UserMan.ShowModal;
UserMan.Free;
end;
procedure TfrmMain.mnu_TextClick(Sender: TObject);
begin
self.TabbedNotebook.PageIndex:=0;
end;
procedure TfrmMain.btn_FirstClick(Sender: TObject);
begin
ModuleUnit.DataControlModule.MailTable.First;
end;
procedure TfrmMain.btn_PrevClick(Sender: TObject);
begin
ModuleUnit.DataControlModule.MailTable.Prior;
if ModuleUnit.DataControlModule.MailTable.Bof then
begin
ModuleUnit.DataControlModule.MailTable.First;
end;
end;
procedure TfrmMain.btn_NextClick(Sender: TObject);
begin
ModuleUnit.DataControlModule.MailTable.Next;
if ModuleUnit.DataControlModule.MailTable.Eof then
begin
ModuleUnit.DataControlModule.MailTable.Last;
end;
end;
procedure TfrmMain.btn_LastClick(Sender: TObject);
begin
ModuleUnit.DataControlModule.MailTable.Last;
end;
procedure TfrmMain.btn_AddClick(Sender: TObject);
begin
self.TabbedNotebook.PageIndex:=0;
ModuleUnit.DataControlModule.MailTable.Append;
self.MailNum.Enabled:=True;
self.SenderNum.Enabled:=True;
self.SenderAddress.Enabled:=True;
self.Sender.Enabled:=True;
self.Receiver.Enabled:=True;
self.ReceiverNum.Enabled:=True;
self.ReceiverAddress.Enabled:=True;
self.MailCost.Enabled:=True;
self.MailHigtht.Enabled:=True;
self.AirPlane.Enabled:=True;
self.btn_First.Enabled:=False;
self.btn_Next.Enabled:=False;
self.btn_Prev.Enabled:=False;
self.btn_Last.Enabled:=False;
self.btn_Add.Enabled:=False;
self.btn_Edit.Enabled:=False;
self.btn_Update.Enabled:=True;
self.btn_Delete.Enabled:=False;
end;
procedure TfrmMain.FormCreate(Sender: TObject);
begin
if not CheckPassword then
begin
Application.Terminate;
end;
self.MailNum.Enabled:=False;
self.SenderNum.Enabled:=False;
self.SenderAddress.Enabled:=False;
self.Sender.Enabled:=False;
self.Receiver.Enabled:=False;
self.ReceiverNum.Enabled:=False;
self.ReceiverAddress.Enabled:=False;
self.MailCost.Enabled:=False;
self.MailHigtht.Enabled:=False;
self.AirPlane.Enabled:=False;
self.btn_Update.Enabled:=False;
end;
function TfrmMain.CheckPassword:Boolean;
var
RetryCount:Integer;
TempQuery:TQuery;
begin
TempQuery:=TQuery.Create(self);
Result:=False;
RetryCount:=0;
PasswordDlg:=TPasswordDlg.Create(self);
while True do
begin
RetryCount:=RetryCount+1;
if RetryCount>3 then
Exit;
if PasswordDlg.ShowModal=mrCancel then
Exit;
with TempQuery do
begin
try
Close;
SQL.Clear;
SQL.Add('SELECT * FROM 用户信息 WHERE 用户名称='+''''+PasswordDlg.Acount.Text+'''');
Open;
finally
;
end;
if RecordCount<=0 then
Continue;
if FieldByName('用户密码').AsString=PasswordDlg.Password.Text then
begin
Result:=True;
Break;
end;
end;
end;
TempQuery.Free;
PasswordDlg.Free;
end;
procedure TfrmMain.btn_EditClick(Sender: TObject);
begin
self.TabbedNotebook.PageIndex:=0;
ModuleUnit.DataControlModule.MailTable.Edit;
self.MailNum.Enabled:=True;
self.SenderNum.Enabled:=True;
self.SenderAddress.Enabled:=True;
self.Sender.Enabled:=True;
self.Receiver.Enabled:=True;
self.ReceiverNum.Enabled:=True;
self.ReceiverAddress.Enabled:=True;
self.MailCost.Enabled:=True;
self.MailHigtht.Enabled:=True;
self.AirPlane.Enabled:=True;
self.btn_First.Enabled:=False;
self.btn_Next.Enabled:=False;
self.btn_Prev.Enabled:=False;
self.btn_Last.Enabled:=False;
self.btn_Add.Enabled:=False;
self.btn_Edit.Enabled:=False;
self.btn_Update.Enabled:=True;
self.btn_Delete.Enabled:=False;
end;
procedure TfrmMain.btn_DeleteClick(Sender: TObject);
begin
self.TabbedNotebook.PageIndex:=0;
if MessageDlg('确定删除当前记录吗?',mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
ModuleUnit.DataControlModule.MailTable.Delete;
ModuleUnit.DataControlModule.MailTable.First;
self.btn_First.Enabled:=True;
self.btn_Next.Enabled:=True;
self.btn_Prev.Enabled:=True;
self.btn_Last.Enabled:=True;
self.btn_Add.Enabled:=True;
self.btn_Edit.Enabled:=True;
self.btn_Update.Enabled:=False;
self.btn_Delete.Enabled:=True;
end;
end;
procedure TfrmMain.btn_UpdateClick(Sender: TObject);
begin
self.TabbedNotebook.PageIndex:=0;
if ModuleUnit.DataControlModule.MailTable.State=dsInsert then
begin
ModuleUnit.DataControlModule.MailTable.FieldByName('邮件号').AsString:=self.MailNum.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('发件人').AsString:=self.Sender.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('发件人地址').AsString:=self.SenderAddress.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('发件人邮编').AsString:=self.SenderNum.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('收件人').AsString:=self.Receiver.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('收件人地址').AsString:=self.ReceiverAddress.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('收件人邮编').AsString:=self.ReceiverNum.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('已付邮资').AsString:=self.MailCost.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('邮件重量').AsString:=self.MailHigtht.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('是否航空').AsBoolean:=self.AirPlane.Checked;
ModuleUnit.DataControlModule.MailTable.Post;
end
else if ModuleUnit.DataControlModule.MailTable.State=dsEdit then
begin
ModuleUnit.DataControlModule.MailTable.FieldByName('邮件号').AsString:=self.MailNum.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('发件人').AsString:=self.Sender.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('发件人地址').AsString:=self.SenderAddress.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('发件人邮编').AsString:=self.SenderNum.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('收件人').AsString:=self.Receiver.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('收件人地址').AsString:=self.ReceiverAddress.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('收件人邮编').AsString:=self.ReceiverNum.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('已付邮资').AsString:=self.MailCost.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('邮件重量').AsString:=self.MailHigtht.Text;
ModuleUnit.DataControlModule.MailTable.FieldByName('是否航空').AsBoolean:=self.AirPlane.Checked;
ModuleUnit.DataControlModule.MailTable.Post;
end;
self.MailNum.Enabled:=False;
self.SenderNum.Enabled:=False;
self.SenderAddress.Enabled:=False;
self.Sender.Enabled:=False;
self.Receiver.Enabled:=False;
self.ReceiverNum.Enabled:=False;
self.ReceiverAddress.Enabled:=False;
self.MailCost.Enabled:=False;
self.MailHigtht.Enabled:=False;
self.AirPlane.Enabled:=False;
self.btn_First.Enabled:=True;
self.btn_Next.Enabled:=True;
self.btn_Prev.Enabled:=True;
self.btn_Last.Enabled:=True;
self.btn_Add.Enabled:=True;
self.btn_Edit.Enabled:=True;
self.btn_Update.Enabled:=False;
self.btn_Delete.Enabled:=True;
end;
procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if ModuleUnit.DataControlModule.MailTable.State=dsEdit then
begin
ShowMessage('正在编辑,请退出编辑状态。');
CanClose:=False;
end;
if ModuleUnit.DataControlModule.MailTable.State=dsInsert then
begin
ShowMessage('正在添加记录,请退出编辑状态。');
CanClose:=False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -