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

📄 main.pas

📁 该系统主要用于生产采购系统
💻 PAS
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, ToolWin, ImgList, Menus, StdActns, ActnList, ExtCtrls;

type
  TMainFrm = class(TForm)
    MainMenu1: TMainMenu;
    M_System: TMenuItem;
    M_Login: TMenuItem;
    M_Loginout: TMenuItem;
    M_Register: TMenuItem;
    M_Separator: TMenuItem;
    M_PassModify: TMenuItem;
    M_ReleModify: TMenuItem;
    M_Quit: TMenuItem;
    M_Scheme: TMenuItem;
    M_Materiel_Need: TMenuItem;
    M_Materiel_Stock: TMenuItem;
    M_Help: TMenuItem;
    ImageList1: TImageList;
    CoolBar1: TCoolBar;
    ToolBar1: TToolBar;
    TB_Scheme: TToolButton;
    TB_Masterl_Need: TToolButton;
    TB_Materiel_Stock: TToolButton;
    StatusBar1: TStatusBar;
    M_Windows: TMenuItem;
    M_Win_Cascade: TMenuItem;
    ActionList1: TActionList;
    WindowCascade1: TWindowCascade;
    WindowCloseALL: TWindowClose;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    WindowMinimizeAll1: TWindowMinimizeAll;
    M_Win_Hor: TMenuItem;
    M_Win_Ver: TMenuItem;
    M_Win_Min: TMenuItem;
    M_Win_Close: TMenuItem;
    Timer1: TTimer;
    procedure M_SchemeClick(Sender: TObject);
    procedure TB_SchemeClick(Sender: TObject);
    procedure TB_Masterl_NeedClick(Sender: TObject);
    procedure WindowCloseALLExecute(Sender: TObject);
    procedure WindowCloseALLUpdate(Sender: TObject);
    procedure M_Materiel_NeedClick(Sender: TObject);
    procedure TB_Materiel_StockClick(Sender: TObject);
    procedure M_Materiel_StockClick(Sender: TObject);
    procedure M_LoginClick(Sender: TObject);
    procedure M_HelpClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure M_QuitClick(Sender: TObject);
    procedure M_LoginoutClick(Sender: TObject);
    procedure Timer1Timer(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
   Login:boolean;
   function CreateForm(CForm:TForm):boolean;  //用户自定义MDIChild子窗体存在判断函数
  end;

var
  MainFrm: TMainFrm;

implementation
  uses Scheme,Materiel_Need,Materiel_Stock,Login,DataModule,About;
{$R *.dfm}

function TMainFrm.CreateForm(CForm:TForm):boolean;
var
  i:integer;
  FormExist:boolean;
begin
  FormExist:=false;
  if(CForm=Nil) then  //判断CFrom是否为空
    begin
     CreateForm:=false;  //函数返回值赋false
     exit;               //退出本函数
    end;
  for i:=0 to Screen.FormCount-1 do //判断窗体是否已经建立起来
    begin
     if Screen.Forms[i].ClassType=CForm.ClassType then  //判断窗体存在
       FormExist:=true;
    end;
  if FormExist=false then
   begin
     CreateForm:=false;  //函数返回值赋false
     exit;               //退出本函数
    end;

   if CForm.WindowState=wsMinimized then
    ShowWindow(CForm.Handle,SW_SHOWNORMAL) //显示窗体
    else
    ShowWindow(CForm.Handle,SW_SHOWNA); //显示窗体
  if not CForm.Visible then
    CForm.Visible:=true;
  CForm.BringToFront;  //当前窗口显示在最前面
  CForm.SetFocus;
  CreateForm:=true;
end;

procedure TMainFrm.M_SchemeClick(Sender: TObject);
begin
   if CreateForm(SchemeFrm)=false then      //调用CreateForm来判断生产计划管理窗口是否存在
   Application.CreateForm(TSchemeFrm,SchemeFrm);  //动态创建生产计划管理窗口
   DM.AT_Scheme.Active:=true;               //生产计划管理数据源组件处于使能态
end;

procedure TMainFrm.TB_SchemeClick(Sender: TObject);
begin
   if CreateForm(SchemeFrm)=false then      //调用CreateForm来判断生产计划管理窗口是否存在
   Application.CreateForm(TSchemeFrm,SchemeFrm);  //动态创建生产计划管理窗口
   DM.AT_Scheme.Active:=true;               //生产计划管理数据源组件处于使能态
end;

procedure TMainFrm.TB_Masterl_NeedClick(Sender: TObject);
begin
   if CreateForm(Materiel_NeedFrm)=false then
   Application.CreateForm(TMateriel_NeedFrm,Materiel_NeedFrm);
   DM.AT_Materiel_Need.Active:=true;
end;

//操作列表控件ActionList1中WindowCloseAll操作执行事件
procedure TMainFrm.WindowCloseALLExecute(Sender: TObject);
var
  i:integer;
begin
   for i:=0 to MDIChildCount-1 do        //MDIChildCount取得当前MDI子窗口的个数
    MDIChildren[i].Close;                //关闭所有MDI子窗口
end;

//操作列表控件ActionList1中WindowCloseAll操作Updata事件
procedure TMainFrm.WindowCloseALLUpdate(Sender: TObject);
begin
  if  MDIChildCount>0 then    //是否有MDI子窗口创建判断
    (Sender As TAction).Enabled:=true   //关闭所有MDI子窗口菜单使能
  else
    (Sender As TAction).Enabled:=false;   //关闭所有MDI子窗口菜单非使能
end;

procedure TMainFrm.M_Materiel_NeedClick(Sender: TObject);
begin
  if CreateForm(Materiel_NeedFrm)=false then
   Application.CreateForm(TMateriel_NeedFrm,Materiel_NeedFrm);
   DM.AT_Materiel_Need.Active:=true;
end;

procedure TMainFrm.TB_Materiel_StockClick(Sender: TObject);
begin
   if CreateForm(Materiel_StockFrm)=false then
   Application.CreateForm(TMateriel_StockFrm,Materiel_StockFrm);
   DM.AT_Materiel_Stock.Active:=true;
end;

procedure TMainFrm.M_Materiel_StockClick(Sender: TObject);
begin
   if CreateForm(Materiel_StockFrm)=false then
   Application.CreateForm(TMateriel_StockFrm,Materiel_StockFrm);
   DM.AT_Materiel_Stock.Active:=true;
end;

procedure TMainFrm.M_LoginClick(Sender: TObject);
begin
  DM.ADOConnection1.Connected:=true;
  DM.AQ_User.Active:=true;
  Application.CreateForm(TLoginFrm,LoginFrm);
  LoginFrm.ShowModal;
  if Login=true then
    begin
     StatusBar1.Panels[1].Text:='登录用户:'+LoginFrm.User;
     M_Login.Enabled:=false;
     M_Loginout.Enabled:=true;
     M_Register.Enabled:=true;
     M_PassModify.Enabled:=true;
     M_ReleModify.Enabled:=true;
     M_Scheme.Enabled:=true;
     M_Materiel_Need.Enabled:=true;
     M_Materiel_Stock.Enabled:=true;
     TB_Scheme.Enabled:=true;
     TB_Masterl_Need.Enabled:=true;
     TB_Materiel_Stock.Enabled:=true;
    end;
end;

procedure TMainFrm.M_HelpClick(Sender: TObject);
begin
  Application.CreateForm(TAboutBox,AboutBox);
  AboutBox.Show;
   try
     AboutBox:=TAboutBox.Create(Application);
     AboutBox.ShowModal;
   Except
     on e:exception do
     Application.ShowException(e);
   end;
end;

procedure TMainFrm.FormCreate(Sender: TObject);
begin
  M_Login.Enabled:=true;
  M_Loginout.Enabled:=false;
  M_Register.Enabled:=false;
  M_PassModify.Enabled:=false;
  M_ReleModify.Enabled:=false;
  M_Scheme.Enabled:=false;
  M_Materiel_Need.Enabled:=false;
  M_Materiel_Stock.Enabled:=false;
  TB_Scheme.Enabled:=false;
  TB_Masterl_Need.Enabled:=false;
  TB_Materiel_Stock.Enabled:=false;
  StatusBar1.Panels[1].Text:='尚未登录!请按F2登录。';
end;

procedure TMainFrm.M_QuitClick(Sender: TObject);
begin
  MainFrm.Close;
end;

procedure TMainFrm.M_LoginoutClick(Sender: TObject);
begin
  M_Login.Enabled:=true;
  M_Loginout.Enabled:=false;
  M_Register.Enabled:=false;
  M_PassModify.Enabled:=false;
  M_ReleModify.Enabled:=false;
  M_Scheme.Enabled:=false;
  M_Materiel_Need.Enabled:=false;
  M_Materiel_Stock.Enabled:=false;
  TB_Scheme.Enabled:=false;
  TB_Masterl_Need.Enabled:=false;
  TB_Materiel_Stock.Enabled:=false;
  Login:=false;
  DM.ADOConnection1.Connected:=false;
  DM.AQ_User.Active:=false;
  StatusBar1.Panels[1].Text:='尚未登录!请按F2登录。';
end;

procedure TMainFrm.Timer1Timer(Sender: TObject);
begin
   statusbar1.Panels[2].text:=DateTimeToStr(Now); //系统时间
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -