MainForm

原创 2011年01月24日 10:29:00

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.

、首先,我们添加一个主界面窗体,命名为MainForm,该窗体IsMdiContainer设置为True,也就是设置为多文档窗体格式。拖拉布局控件"WeifenLuo.WinFormsUI.Docking.DockPanel"到主窗体MainForm中,并

、首先,我们添加一个主界面窗体,命名为MainForm,该窗体IsMdiContainer设置为True,也就是设置为多文档窗体格式。拖拉布局控件"WeifenLuo.WinFormsUI.Docki...
  • csdsuper
  • csdsuper
  • 2010年06月09日 18:07
  • 8311

C#实现插件式开发

主要思路:公开一个插件接口,如果.DLL或.EXE的代码中有继承这个接口就将其示为插件,并将这些插件放在同一目录。运行程序的时候扫描目录并通过反射判断.DLL或.EXE中是否存在该接口,若存在,则当作...
  • trustin
  • trustin
  • 2013年08月15日 22:04
  • 556

MainForm关闭之后保持程序运行

MainForm关闭之后保持程序运行 作者:罗会涛 WinForm程序一般都是从一个Form的static void Main()开始运行,暂且称此Form为MainForm。Main函数的一般写法是...
  • ddarkelf
  • ddarkelf
  • 2004年09月15日 11:41
  • 953

MainForm关闭之后保持程序运行

MainForm关闭之后保持程序运行 作者:罗会涛 WinForm程序一般都是从一个Form的static void Main()开始运行,暂且称此Form为MainForm。Main函数的一般写法是...
  • qiaov
  • qiaov
  • 2004年10月20日 16:59
  • 860

C#重载关闭按钮

老是记不住override关键字。。因此也就不会重载函数。。。 记个例子。。。 C#窗体关闭事件的重载是什么呢?我们在实际操作中是如何实现的呢?   我们会在编程的过程...
  • liuyuehui110
  • liuyuehui110
  • 2010年09月30日 19:20
  • 4317

非MainForm窗体显示在任务栏上

重载函数  procedure CreateParams(var Params: TCreateParams); override;   设置 Params.WndParent := GetD...
  • chqiangxz
  • chqiangxz
  • 2009年08月17日 14:48
  • 33

关于QT的系统总结(非常全面,非常好)

原文地址:: 相关文章 1、关于QT的系统总结----http://www.cnblogs.com/wangqiguo/p/4625611.html 源地址:...
  • xqhrs232
  • xqhrs232
  • 2016年10月14日 23:25
  • 916

主窗体MainForm和Main的实现

http://www.cnblogs.com/sufei/archive/2010/04/19/1715087.html
  • sufei1013
  • sufei1013
  • 2010年04月19日 07:10
  • 407

C#下类中 访问窗体控件的问题

一般来讲我们都已经习惯了把单一的功能块都写到类里边了,然后在软件的主线程中调用一下类中的函数所有功能就都实现了,但是有些系统,比如说某一些监控类的系统,需要我们在类中进行操作的同事呢把一些实时数据展示...
  • energeticsunxiaocong
  • energeticsunxiaocong
  • 2013年10月21日 10:22
  • 1403

VB.NET学习笔记--类型转换

1。转换函数 DirectCast: 基于继承或实现的类型转换操作。 CType: TryCast: 在 Object 数据类型之间来回转换时,DirectCast 不使用 Visual Basic ...
  • xssh913913
  • xssh913913
  • 2007年09月01日 20:13
  • 1052
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MainForm
举报原因:
原因补充:

(最多只允许输入30个字)