📄 main.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 + -