⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainunit.~pas

📁 delphi 环境下邮件管理程序。
💻 ~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 + -