关闭

MainForm

标签: integerapplication日历formsinterfacewindows
294人阅读 评论(0) 收藏 举报

unit MainForm;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Menus, StdCtrls, Buttons, ToolWin, ComCtrls, jpeg;
 
type
  Tmain = class(TForm)
    MainMenu1: TMainMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    BOM1: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    MPS1: TMenuItem;
    MRP1: TMenuItem;
    MRP2: TMenuItem;
    StatusBar1: TStatusBar;
    Image1: TImage;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    procedure N4Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure BOM1Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure MPS1Click(Sender: TObject);
    procedure MRP1Click(Sender: TObject);
    procedure MRP2Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
   
    
  private
    { Private declarations }
  public
    { Public declarations }
//各个MDI子窗体间通过主窗体定义的公共变量来传递数据
    str,str2,str3,str4:string;
//标示是哪个子窗体来使用上面的四个公共变量
//bomflag=1表示BOM窗体使用上面的变量,bomflag=2,3表示主需求窗体使用
    bomflag:integer;
  end;
 
var
  main: Tmain;
 
 
implementation
 
{$R *.dfm}
uses MaterialsForm,BomForm,CalendarForm,mainrequireForm,mainproduceform,MRPCalForm,mrphistoryForm;
 
//---------------打开物料主文件管理子窗口---------------------
procedure Tmain.N4Click(Sender: TObject);
var
newform:Tmaterials;
i,flag:integer;
begin
//flag=0表示该窗体不存在
  flag:=0;
  for i:=0 to main.MDIChildCount do
 begin
// 通过对窗体标题判断窗体是否存在
  if main.MDIChildren[i].Caption='物料主文件维护' then
   begin
   //如果窗体已存在,则恢复窗体
     SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
     mdichildren[i].Show;
     mdichildren[i].Enabled:=true;
     flag:=1;
   //退出循环
   break;
   end;
   end;
  //若窗体不存在,则创建窗体
   if flag=0 then
 begin
 newform:=Tmaterials.Create(application);
 newform.Caption:='物料主文件维护';
 end;
end;
 
//----------关闭主窗体----------------------
procedure Tmain.N3Click(Sender: TObject);
begin
main.Close;
end;
 
//----------------打开物料清单(BOM)子窗体------------------------
procedure Tmain.BOM1Click(Sender: TObject);
var
newform:Tbom;
i,flag:integer;
begin
  flag:=0;
  for i:=0 to main.MDIChildCount do
 begin
// 通过对窗体标题判断窗体是否存在
  if main.MDIChildren[i].Caption='物料清单(BOM)' then
   begin
   //如果窗体已存在,则恢复窗体
     SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
     mdichildren[i].Show;
     mdichildren[i].Enabled:=true;
    //标识窗体已存在
     flag:=1;
   //退出循环
   break;
   end;
   end;
  //若窗体不存在,则创建窗体
   if flag=0 then
 begin
 newform:=Tbom.Create(application);
 newform.Caption:='物料清单(BOM)';
 end;
end;
 
//--------------------------------------------------------------------
//  *********** 这里是【物料主文件】菜单选项和【物料清单(BOM)】菜单选项的单击事件响应处理代码,其他子窗体相对应的菜单选项处理代码和上面的代码基本一致。
//   读者请参考随书光盘
//--------------------------------------------------------------------
 
procedure Tmain.N5Click(Sender: TObject);
var
newform:TCalendar;
i,flag:integer;
begin
  flag:=0;
  for i:=0 to main.MDIChildCount do
 begin
  if main.MDIChildren[i].Caption='工厂日历' then
   begin
     SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
     mdichildren[i].Show;
     mdichildren[i].Enabled:=true;
     flag:=1;
   break;
   end;
   end;
  //若窗体不存在,则创建窗体
if flag=0 then
 begin
 newform:=Tcalendar.Create(application);
 newform.Caption:='工厂日历';
 end;
end;
 
 
procedure Tmain.N6Click(Sender: TObject);
var
newform:Tmainrequire;
i,flag:integer;
begin
  flag:=0;
  for i:=0 to main.MDIChildCount do
 begin
  if main.MDIChildren[i].Caption='主需求计划' then
   begin
     SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
     mdichildren[i].Enabled:=true;
     mdichildren[i].Focused;
     mdichildren[i].Show;
 
     flag:=1;
   break;
   end;
   end;
 
if flag=0 then
 begin
 newform:=Tmainrequire.Create(application);
 newform.Caption:='主需求计划';
 end;
end;
 
procedure Tmain.MPS1Click(Sender: TObject);
var
newform:Tmainproduce;
i,flag:integer;
begin
  flag:=0;
  for i:=0 to main.MDIChildCount do
 begin
  if main.MDIChildren[i].Caption='主生产计划' then
   begin
     SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
     mdichildren[i].Show;
     mdichildren[i].Enabled:=true;
     flag:=1;
   break;
   end;
   end;
 
if flag=0 then
 begin
 newform:=Tmainproduce.Create(application);
 newform.Caption:='主生产计划';
 end;
end;
 
procedure Tmain.MRP1Click(Sender: TObject);
var
newform:Tmrpcal;
i,flag:integer;
begin
  flag:=0;
  for i:=0 to main.MDIChildCount do
 begin
  if main.MDIChildren[i].Caption='MRP计算' then
   begin
     SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
     mdichildren[i].Show;
     mdichildren[i].Enabled:=true;
     flag:=1;
   break;
   end;
   end;
 
if flag=0 then
 begin
 newform:=Tmrpcal.Create(application);
 newform.Caption:='MRP计算';
 end;
end;
 
procedure Tmain.MRP2Click(Sender: TObject);
var
newform:Tmrphistory;
i,flag:integer;
begin
  flag:=0;
  for i:=0 to main.MDIChildCount do
 begin
  if main.MDIChildren[i].Caption='MRP历史查询' then
   begin
     SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
     mdichildren[i].Show;
     mdichildren[i].Enabled:=true;
     flag:=1;
   break;
   end;
   end;
 
if flag=0 then
 begin
 newform:=Tmrphistory.Create(application);
 newform.Caption:='MRP历史查询';
 end;
end;
 
 
//平铺各个子窗体
procedure Tmain.N8Click(Sender: TObject);
begin
 Tile;
end;
//层叠各个子窗体
procedure Tmain.N9Click(Sender: TObject);
begin
  Cascade;
end;
 
 
 
end.

0
0

猜你在找
【直播】计算机视觉原理及实战——屈教授
【套餐】深度学习入门视频课程——唐宇迪
【套餐】Hadoop生态系统零基础入门
【套餐】嵌入式Linux C编程基础
【套餐】2017软考系统集成项目——任铄
【套餐】Android 5.x顶级视频课程——李宁
【直播】广义线性模型及其应用——李科
【直播】从0到1 区块链的概念到实践
【直播】机器学习之凸优化——马博士
【套餐】微信订阅号+服务号Java版 v2.0--翟东平
查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:69630次
    • 积分:1391
    • 等级:
    • 排名:千里之外
    • 原创:73篇
    • 转载:5篇
    • 译文:0篇
    • 评论:1条
    最新评论
  • FastReport的使用

    highfiresun: 楼主威武,写的太好了。我有个问题还想请教:我怎么调用ExportTo导出各种文件?另外,能否加我Q探...